os/mm/devsoundextensions/mmextfw/custominterfaceutility/CustomInterfaceUtility/src/CustomInterfaceUtility.cpp
author sl@SLION-WIN7.fritz.box
Fri, 15 Jun 2012 03:10:57 +0200
changeset 0 bde4ae8d615e
permissions -rw-r--r--
First public contribution.
sl@0
     1
/*
sl@0
     2
* Copyright (c) 2002-2006 Nokia Corporation and/or its subsidiary(-ies). 
sl@0
     3
* All rights reserved.
sl@0
     4
* This component and the accompanying materials are made available
sl@0
     5
* under the terms of "Eclipse Public License v1.0"
sl@0
     6
* which accompanies this distribution, and is available
sl@0
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
sl@0
     8
*
sl@0
     9
* Initial Contributors:
sl@0
    10
* Nokia Corporation - initial contribution.
sl@0
    11
*
sl@0
    12
* Contributors:
sl@0
    13
*
sl@0
    14
* Description: CustomInterface Utility Proxy implementation
sl@0
    15
*
sl@0
    16
*/
sl@0
    17
sl@0
    18
sl@0
    19
sl@0
    20
// INCLUDE FILES
sl@0
    21
#include "CustomInterfaceUtility.h"
sl@0
    22
#include <ProxyCustomInterfaceUtility.h>
sl@0
    23
#include "CustomCommandUtility.h"
sl@0
    24
#include <sounddevice.h>
sl@0
    25
#include <mdaaudioinputstream.h>
sl@0
    26
#include <DrmAudioSamplePlayer.h>
sl@0
    27
#include <videoplayer.h>
sl@0
    28
#include <videorecorder.h>
sl@0
    29
sl@0
    30
EXPORT_C CCustomInterfaceUtility* CCustomInterfaceUtility::NewL(CMdaAudioConvertUtility& aUtility)
sl@0
    31
	{
sl@0
    32
	CCustomCommandUtility* customCommandUtility = CCustomCommandUtility::NewL(aUtility);
sl@0
    33
	CProxyCustomInterfaceUtility* util = CProxyCustomInterfaceUtility::NewL(customCommandUtility);
sl@0
    34
sl@0
    35
	return util;
sl@0
    36
	}
sl@0
    37
sl@0
    38
EXPORT_C CCustomInterfaceUtility* CCustomInterfaceUtility::NewL(CMdaAudioPlayerUtility& aUtility)
sl@0
    39
	{
sl@0
    40
	CCustomCommandUtility* customCommandUtility = CCustomCommandUtility::NewL(aUtility);
sl@0
    41
	CProxyCustomInterfaceUtility* util = CProxyCustomInterfaceUtility::NewL(customCommandUtility);
sl@0
    42
sl@0
    43
	return util;
sl@0
    44
	}
sl@0
    45
sl@0
    46
EXPORT_C CCustomInterfaceUtility* CCustomInterfaceUtility::NewL(CMdaAudioRecorderUtility& aUtility,
sl@0
    47
                                                                TBool aRecordStream)
sl@0
    48
	{
sl@0
    49
	CCustomCommandUtility* customCommandUtility = CCustomCommandUtility::NewL(aUtility,aRecordStream);
sl@0
    50
	CProxyCustomInterfaceUtility* util = CProxyCustomInterfaceUtility::NewL(customCommandUtility);
sl@0
    51
sl@0
    52
	return util;
sl@0
    53
	}
sl@0
    54
sl@0
    55
EXPORT_C CCustomInterfaceUtility* CCustomInterfaceUtility::NewL(CCustomCommandUtility* aCustomCommandUtility)
sl@0
    56
	{
sl@0
    57
	//CCustomInterfaceUtility* self = new(ELeave) CCustomInterfaceUtility();
sl@0
    58
	//CleanupStack::PushL(self);
sl@0
    59
	//self->ConstructL(aCustomCommandUtility);
sl@0
    60
	//CleanupStack::Pop(self);
sl@0
    61
	CProxyCustomInterfaceUtility* util = CProxyCustomInterfaceUtility::NewL(aCustomCommandUtility);
sl@0
    62
	return util;
sl@0
    63
	}
sl@0
    64
EXPORT_C CCustomInterfaceUtility* CCustomInterfaceUtility::NewL(CMMFDevSound& /*aDevSound*/)
sl@0
    65
	{
sl@0
    66
	User::Leave(KErrNotSupported);
sl@0
    67
	CCustomInterfaceUtility* self = NULL; 
sl@0
    68
	return self;
sl@0
    69
/*****
sl@0
    70
	CCustomInterfaceUtility* self = new(ELeave) CCustomInterfaceUtility();
sl@0
    71
	CleanupStack::PushL(self);
sl@0
    72
	self->ConstructL(aDevSound);
sl@0
    73
	CleanupStack::Pop(self);
sl@0
    74
	return self;
sl@0
    75
*****/
sl@0
    76
	}
sl@0
    77
sl@0
    78
EXPORT_C CCustomInterfaceUtility* CCustomInterfaceUtility::NewL(CMidiClientUtility& aUtility)
sl@0
    79
	{
sl@0
    80
	CCustomCommandUtility* customCommandUtility = CCustomCommandUtility::NewL(aUtility);
sl@0
    81
	CProxyCustomInterfaceUtility* util = CProxyCustomInterfaceUtility::NewL(customCommandUtility);
sl@0
    82
sl@0
    83
	return util;
sl@0
    84
	}
sl@0
    85
sl@0
    86
EXPORT_C CCustomInterfaceUtility* CCustomInterfaceUtility::NewL(MCustomCommand& aUtility)
sl@0
    87
	{
sl@0
    88
	CProxyCustomInterfaceUtility* util = CProxyCustomInterfaceUtility::NewL(aUtility);
sl@0
    89
sl@0
    90
	return util;
sl@0
    91
	}
sl@0
    92
sl@0
    93
EXPORT_C CCustomInterfaceUtility* CCustomInterfaceUtility::NewL(CDrmPlayerUtility& aUtility)
sl@0
    94
	{
sl@0
    95
	CCustomCommandUtility* customCommandUtility = CCustomCommandUtility::NewL(aUtility);
sl@0
    96
	CProxyCustomInterfaceUtility* util = CProxyCustomInterfaceUtility::NewL(customCommandUtility);
sl@0
    97
sl@0
    98
	return util;
sl@0
    99
	}
sl@0
   100
sl@0
   101
EXPORT_C CCustomInterfaceUtility* CCustomInterfaceUtility::NewL(CVideoPlayerUtility& aUtility)
sl@0
   102
	{
sl@0
   103
	CCustomCommandUtility* customCommandUtility = CCustomCommandUtility::NewL(aUtility);
sl@0
   104
	CProxyCustomInterfaceUtility* util = CProxyCustomInterfaceUtility::NewL(customCommandUtility);
sl@0
   105
sl@0
   106
	return util;
sl@0
   107
	}
sl@0
   108
sl@0
   109
EXPORT_C CCustomInterfaceUtility* CCustomInterfaceUtility::NewL(CVideoRecorderUtility& aUtility)
sl@0
   110
	{
sl@0
   111
	CCustomCommandUtility* customCommandUtility = CCustomCommandUtility::NewL(aUtility);
sl@0
   112
	CProxyCustomInterfaceUtility* util = CProxyCustomInterfaceUtility::NewL(customCommandUtility);
sl@0
   113
sl@0
   114
	return util;
sl@0
   115
	}
sl@0
   116
		
sl@0
   117
EXPORT_C CCustomInterfaceUtility::CCustomInterfaceUtility()
sl@0
   118
	{
sl@0
   119
	}
sl@0
   120
sl@0
   121
void CCustomInterfaceUtility::ConstructL(CCustomCommandUtility* aCustomCommandUtility)
sl@0
   122
	{
sl@0
   123
	iProxyFactory = CProxyCustomInterfaceUtility::NewL(aCustomCommandUtility);
sl@0
   124
	}
sl@0
   125
sl@0
   126
void CCustomInterfaceUtility::ConstructL(CMMFDevSound& aDevSound)
sl@0
   127
	{
sl@0
   128
	iDevSound = &aDevSound;
sl@0
   129
	}
sl@0
   130
EXPORT_C CCustomInterfaceUtility::~CCustomInterfaceUtility()
sl@0
   131
	{
sl@0
   132
	delete iProxyFactory;
sl@0
   133
	}
sl@0
   134
sl@0
   135
TAny* CCustomInterfaceUtility::CustomInterface(TUid aInterfaceId)
sl@0
   136
	{
sl@0
   137
	TAny* result;
sl@0
   138
sl@0
   139
	if (iDevSound)
sl@0
   140
		{
sl@0
   141
		result = iDevSound->CustomInterface(aInterfaceId);
sl@0
   142
//		delete this; //protect from memory leaks in clients
sl@0
   143
		}
sl@0
   144
	else
sl@0
   145
		{
sl@0
   146
	result = iProxyFactory->CustomInterface(aInterfaceId);
sl@0
   147
		}
sl@0
   148
	return result;
sl@0
   149
	}
sl@0
   150
sl@0
   151
void CCustomInterfaceUtility::RemoveCustomInterface(TMMFMessageDestinationPckg aMessageHandler)
sl@0
   152
	{
sl@0
   153
sl@0
   154
	iProxyFactory->RemoveCustomInterface(aMessageHandler);
sl@0
   155
sl@0
   156
	}
sl@0
   157
sl@0
   158
sl@0
   159
// End of File