devsound/devsoundrefplugin/src/platsec/client/MmfDevSoundProxy.h
author hgs
Fri, 08 Oct 2010 19:40:43 +0100
changeset 0 79dd3e2336a0
permissions -rw-r--r--
2010wk36_01
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
     1
// Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
     2
// All rights reserved.
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
     3
// This component and the accompanying materials are made available
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
     4
// under the terms of "Eclipse Public License v1.0"
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
     5
// which accompanies this distribution, and is available
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
     6
// at the URL "http://www.eclipse.org/legal/epl-v10.html".
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
     7
//
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
     8
// Initial Contributors:
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
     9
// Nokia Corporation - initial contribution.
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    10
//
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    11
// Contributors:
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    12
//
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    13
// Description:
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    14
//
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    15
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    16
#ifndef __MMFDEVSOUNDPROXY_H__
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    17
#define __MMFDEVSOUNDPROXY_H__
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    18
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    19
#include <e32base.h>
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    20
#include <e32std.h>
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    21
#include <mmf/common/mmfipc.h>
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    22
#ifdef SYMBIAN_ENABLE_SPLIT_HEADERS
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    23
#include <mmf/common/mmfipcserver.h>
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    24
#endif
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    25
#include "MmfAudioClientServer.h"
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    26
#include "MmfAudioServerProxy.h"
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    27
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    28
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    29
/** 
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    30
Panic category and codes for the MmfDevSoundProxy
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    31
@internalTechnology
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    32
*/
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    33
_LIT(KMMFDevSoundProxyPanicCategory, "MmfDevSoundProxy");
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    34
enum TMMFDevSoundProxyPanicCodes
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    35
	{
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    36
	EMMFDevSoundProxyPlayDataWithoutInitialize,
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    37
	EMMFDevSoundProxyRecordDataWithoutInitialize,
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    38
	EMMFDevSoundProxyConvertDataWithoutInitialize
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    39
	};
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    40
	
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    41
class RMMFDevSoundProxy; // declared here.
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    42
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    43
NONSHARABLE_CLASS( RMMFDevSoundProxy ): public RMmfSessionBase 
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    44
/**
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    45
*@internalTechnology
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    46
*/
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    47
	{
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    48
public:
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    49
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    50
	IMPORT_C RMMFDevSoundProxy();
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    51
	IMPORT_C TInt Open(RHandleBase& aMsgQueueHandle);
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    52
	IMPORT_C TInt SetDevSoundInfo();
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    53
	IMPORT_C TInt InitializeL(TMMFState aMode);
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    54
	IMPORT_C TInt InitializeL(TUid aHWDev, TMMFState aMode);
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    55
	IMPORT_C TInt InitializeL(TFourCC aDesiredFourCC, TMMFState aMode);
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    56
	IMPORT_C TMMFCapabilities Capabilities();
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    57
	IMPORT_C TMMFCapabilities Config();
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    58
	IMPORT_C TInt SetConfigL(const TMMFCapabilities& aConfig);
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    59
	IMPORT_C TInt MaxVolume();
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    60
	IMPORT_C TInt Volume();
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    61
	IMPORT_C TInt SetVolume(TInt aVolume);
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    62
	IMPORT_C TInt MaxGain();
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    63
	IMPORT_C TInt Gain();
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    64
	IMPORT_C TInt SetGain(TInt aGain);
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    65
	IMPORT_C void GetPlayBalanceL(TInt& aLeftPercentage, TInt& aRightPercentage);
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    66
	IMPORT_C void SetPlayBalanceL(TInt aLeftPercentage, TInt aRightPercentage);
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    67
	IMPORT_C void GetRecordBalanceL(TInt& aLeftPercentage, TInt& aRightPercentage);
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    68
	IMPORT_C void SetRecordBalanceL(TInt aLeftPercentage, TInt aRightPercentage);
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    69
	IMPORT_C void Close();
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    70
	IMPORT_C void PlayInitL();
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    71
	IMPORT_C void RecordInitL();
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    72
	IMPORT_C void PlayData();
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    73
	IMPORT_C void RecordData();
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    74
	IMPORT_C void Stop();
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    75
	IMPORT_C void Pause();
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    76
	IMPORT_C void PlayToneL(TInt aFrequency, const TTimeIntervalMicroSeconds& aDuration);
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    77
	IMPORT_C void PlayDualToneL(TInt aFrequencyOne, TInt aFrequencyTwo, const TTimeIntervalMicroSeconds& aDuration);
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    78
	IMPORT_C void PlayDTMFStringL(const TDesC& aDTMFString);
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    79
	IMPORT_C void PlayToneSequenceL(const TDesC8& aData);
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    80
	IMPORT_C void PlayFixedSequenceL(TInt aSequenceNumber);
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    81
	IMPORT_C void SetDTMFLengths(TTimeIntervalMicroSeconds32& aToneOnLength,
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    82
								 TTimeIntervalMicroSeconds32& aToneOffLength,
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    83
								 TTimeIntervalMicroSeconds32& aPauseLength);
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    84
	IMPORT_C void SetVolumeRamp(const TTimeIntervalMicroSeconds& aRampDuration);
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    85
	IMPORT_C void GetSupportedInputDataTypesL(RArray<TFourCC>& aSupportedDataTypes, const TMMFPrioritySettings& aPrioritySettings);
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    86
	IMPORT_C void GetSupportedOutputDataTypesL(RArray<TFourCC>& aSupportedDataTypes, const TMMFPrioritySettings& aPrioritySettings);
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    87
	IMPORT_C TInt SamplesRecorded();
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    88
	IMPORT_C TInt SamplesPlayed();
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    89
	IMPORT_C void SetToneRepeats(TInt aRepeatCount, const TTimeIntervalMicroSeconds& aRepeatTrailingSilence);
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    90
	IMPORT_C void SetPrioritySettings(const TMMFPrioritySettings& aPrioritySettings);
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    91
	IMPORT_C const TDesC& FixedSequenceName(TInt aSequenceNumber);
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    92
	IMPORT_C TAny* CustomInterface(TUid aInterfaceId);
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    93
	IMPORT_C TInt FixedSequenceCount();
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    94
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    95
	IMPORT_C TInt BufferToBeFilledData(TMMFDevSoundProxyHwBufPckg& aSetPckg);
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    96
	IMPORT_C TInt BufferToBeEmptiedData(TMMFDevSoundProxyHwBufPckg& aSetPckg);
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    97
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    98
	IMPORT_C void CancelReceiveEvents();
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
    99
	IMPORT_C void SetBuffer(CMMFDataBuffer* aBuffer);
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
   100
	IMPORT_C TInt GetRecordedBufferL(CMMFDataBuffer& aBuffer);
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
   101
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
   102
	IMPORT_C TInt RegisterAsClient(TUid aEventType, const TDesC8& aNotificationRegistrationData = KNullDesC8);
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
   103
	IMPORT_C TInt CancelRegisterAsClient(TUid aEventType);
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
   104
	IMPORT_C TInt GetResourceNotificationData(TUid aEventType,TDes8& aNotificationData);
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
   105
	IMPORT_C TInt WillResumePlay();
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
   106
	IMPORT_C TInt EmptyBuffers();
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
   107
	
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
   108
	IMPORT_C TInt SyncCustomCommand(TUid aUid, const TDesC8& aParam1, const TDesC8& aParam2, TDes8* aOutParam);
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
   109
	IMPORT_C void AsyncCustomCommand(TUid aUid, TRequestStatus& aStatus, const TDesC8& aParam1, const TDesC8& aParam2, TDes8* aOutParam);
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
   110
	IMPORT_C TInt SetClientThreadInfo(TThreadId& aTid);
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
   111
	IMPORT_C TInt GetTimePlayed(TTimeIntervalMicroSeconds& aTime);
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
   112
	
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
   113
private:
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
   114
	TMMFDevSoundProxySettingsPckg iDspsPckg;
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
   115
	CMMFDataBuffer* iBuffer;
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
   116
	HBufC* iSeqName;
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
   117
	enum TState
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
   118
		{
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
   119
		EIdle=0,
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
   120
		EPlaying,
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
   121
		ERecording,
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
   122
		EConverting
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
   123
		};
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
   124
	TState iState;
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
   125
	RHandleBase* iMsgQueueHandle;
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
   126
	RMMFAudioServerProxy* iAudioServerProxy;
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
   127
	};
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
   128
79dd3e2336a0 2010wk36_01
hgs
parents:
diff changeset
   129
#endif