devsoundextensions/mmfcustominterfaces/EAacPlusDecoderIntfc/EAacPlusDecoderIntfcProxy/src/EAacPlusDecoderIntfcProxy.cpp
author hgs
Tue, 02 Nov 2010 12:28:51 +0000
changeset 6 fe9d1bf55678
parent 0 b8ed18f6c07b
permissions -rw-r--r--
2010wk46_02
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
     1
/*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
     2
* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies). 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
     3
* All rights reserved.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
     4
* This component and the accompanying materials are made available
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.0"
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
     6
* which accompanies this distribution, and is available
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
     8
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
     9
* Initial Contributors:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    11
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    12
* Contributors:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    13
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    14
* Description:   Interface proxy for Enhanced AAC+ decoder configuration CI.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    15
*
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    16
*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    17
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    18
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    19
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    20
// INCLUDE FILES
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    21
#include <CustomCommandUtility.h>
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    22
#include <CustomInterfaceUtility.h>
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    23
#include "EAacPlusDecoderIntfcMsgs.h"
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    24
#include "EAacPlusDecoderIntfcProxy.h"
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    25
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    26
// EXTERNAL DATA STRUCTURES
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    27
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    28
// EXTERNAL FUNCTION PROTOTYPES
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    29
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    30
// CONSTANTS
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    31
const CEAacPlusDecoderIntfc::TAudioObjectType
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    32
            KAacAudioObjectTypeINVALID = CEAacPlusDecoderIntfc::ENull;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    33
const TInt  KAacInputSampleRateINVALID = 0;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    34
const TInt  KAacNumOfChannelsINVALID   = 0;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    35
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    36
// MACROS
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    37
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    38
// LOCAL CONSTANTS AND MACROS
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    39
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    40
// MODULE DATA STRUCTURES
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    41
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    42
// LOCAL FUNCTION PROTOTYPES
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    43
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    44
// FORWARD DECLARATIONS
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    45
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    46
// ============================= LOCAL FUNCTIONS ===============================
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    47
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    48
// ============================= MEMBER FUNCTIONS ==============================
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    49
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    50
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    51
 * CEAacPlusDecoderIntfcProxy::CEAacPlusDecoderIntfcProxy
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    52
 * C++ default constructor can NOT contain any code, that
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    53
 * might leave.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    54
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    55
CEAacPlusDecoderIntfcProxy::CEAacPlusDecoderIntfcProxy(
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    56
                            TMMFMessageDestinationPckg aMessageHandler,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    57
                            MCustomCommand& aCustomCommand,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    58
                            CCustomInterfaceUtility* aCustomInterfaceUtility) :
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    59
    iCustomCommand(aCustomCommand),
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    60
    iMessageHandler(aMessageHandler),
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    61
    iCustomInterfaceUtility(aCustomInterfaceUtility)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    62
    {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    63
    }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    64
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    65
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    66
 * CEAacPlusDecoderIntfcProxy::ConstructL
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    67
 * Symbian 2nd phase constructor can leave.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    68
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    69
void CEAacPlusDecoderIntfcProxy::ConstructL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    70
    {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    71
    iAudioObjectType        = KAacAudioObjectTypeINVALID;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    72
    iInputSamplingFrequency = KAacInputSampleRateINVALID;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    73
    iNumOfChannels          = KAacNumOfChannelsINVALID;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    74
    iSbrEnabled             = EFalse;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    75
    iDsmEnabled             = EFalse;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    76
    iHasBeenApplied         = EFalse;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    77
    }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    78
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    79
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    80
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    81
 * CEAacPlusDecoderIntfcProxy::NewL
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    82
 * Two-phased constructor.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    83
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    84
EXPORT_C CEAacPlusDecoderIntfcProxy* CEAacPlusDecoderIntfcProxy::NewL(
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    85
                              TMMFMessageDestinationPckg aMessageHandler,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    86
                              MCustomCommand& aCustomCommand,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    87
                              CCustomInterfaceUtility* aCustomInterfaceUtility)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    88
    {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    89
    CEAacPlusDecoderIntfcProxy* self = new(ELeave) CEAacPlusDecoderIntfcProxy(
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    90
                                                   aMessageHandler,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    91
                                                   aCustomCommand,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    92
                                                   aCustomInterfaceUtility);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    93
    CleanupStack::PushL( self );
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    94
    self->ConstructL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    95
    CleanupStack::Pop( self );
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    96
    return self;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    97
    }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    98
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    99
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   100
 * Destructor
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   101
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   102
EXPORT_C CEAacPlusDecoderIntfcProxy::~CEAacPlusDecoderIntfcProxy()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   103
    {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   104
    iCustomInterfaceUtility->RemoveCustomInterface(iMessageHandler);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   105
    delete iCustomInterfaceUtility;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   106
    }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   107
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   108
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   109
// From CEAacPlusDecoderIntfc
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   110
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   111
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   112
 * Configures decoder's profile defined by TAudioObjectType.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   113
 * (other items defined in the header)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   114
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   115
EXPORT_C void CEAacPlusDecoderIntfcProxy::SetAudioObjectType(
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   116
                                          TAudioObjectType aAudioObjectType)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   117
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   118
	iAudioObjectType = aAudioObjectType;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   119
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   120
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   121
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   122
 * Configures decoder's input sampling frequency.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   123
 * (other items defined in the header)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   124
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   125
EXPORT_C void CEAacPlusDecoderIntfcProxy::SetInputSamplingFrequency(
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   126
                                          TUint aInputSamplingFrequency)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   127
    {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   128
    iInputSamplingFrequency = aInputSamplingFrequency;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   129
    }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   130
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   131
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   132
 * Configures decoder's channel settings.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   133
 * (other items defined in the header)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   134
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   135
EXPORT_C void CEAacPlusDecoderIntfcProxy::SetNumOfChannels(
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   136
                                          TUint aNumOfChannels)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   137
    {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   138
    iNumOfChannels = aNumOfChannels;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   139
    }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   140
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   141
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   142
 * Configures decoder's SBR settings.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   143
 * (other items defined in the header)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   144
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   145
EXPORT_C void CEAacPlusDecoderIntfcProxy::SetSbr(TBool aSbrEnabled)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   146
    {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   147
    iSbrEnabled = aSbrEnabled;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   148
    }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   149
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   150
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   151
 * Configures decoder's DSM settings.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   152
 * (other items defined in the header)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   153
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   154
EXPORT_C void CEAacPlusDecoderIntfcProxy::SetDownSampledMode(TBool aDsmEnabled)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   155
    {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   156
    iDsmEnabled = aDsmEnabled;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   157
    }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   158
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   159
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   160
 * Returns decoder's AAC profile settings.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   161
 * (other items defined in the header)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   162
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   163
EXPORT_C TInt CEAacPlusDecoderIntfcProxy::GetAudioObjectType(
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   164
                                          TAudioObjectType& aAudioObjectType)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   165
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   166
    TInt status = KErrNone;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   167
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   168
    if (iHasBeenApplied)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   169
        {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   170
    	aAudioObjectType = iCurrentAudioObjectType;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   171
        }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   172
    else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   173
        {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   174
        status = KErrArgument;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   175
        }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   176
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   177
    return status;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   178
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   179
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   180
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   181
 * Returns decoder's input sampling frequency settings.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   182
 * (other items defined in the header)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   183
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   184
EXPORT_C TInt CEAacPlusDecoderIntfcProxy::GetInputSamplingFrequency(
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   185
                                          TUint& aInputSamplingFrequency)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   186
    {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   187
    TInt status = KErrNone;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   188
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   189
    if (iHasBeenApplied)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   190
        {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   191
    	aInputSamplingFrequency = iCurrentInputSamplingFrequency;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   192
        }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   193
    else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   194
        {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   195
        status = KErrArgument;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   196
        }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   197
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   198
    return status;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   199
    }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   200
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   201
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   202
 * Returns decoder's channel settings.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   203
 * (other items defined in the header)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   204
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   205
EXPORT_C TInt CEAacPlusDecoderIntfcProxy::GetNumOfChannels(
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   206
                                          TUint& aNumOfChannels)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   207
    {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   208
    TInt status = KErrNone;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   209
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   210
    if (iHasBeenApplied)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   211
        {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   212
    	aNumOfChannels = iCurrentNumOfChannels;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   213
        }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   214
    else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   215
        {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   216
        status = KErrArgument;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   217
        }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   218
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   219
    return status;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   220
    }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   221
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   222
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   223
 * Returns decoder's SBR settings.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   224
 * (other items defined in the header)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   225
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   226
EXPORT_C TInt CEAacPlusDecoderIntfcProxy::GetSbr(TBool& aSbrEnabled)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   227
    {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   228
    TInt status = KErrNone;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   229
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   230
    if (iHasBeenApplied)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   231
        {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   232
    	aSbrEnabled = iCurrentSbrEnabled;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   233
        }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   234
    else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   235
        {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   236
        status = KErrArgument;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   237
        }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   238
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   239
    return status;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   240
    }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   241
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   242
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   243
 * Returns decoder's DSM settings.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   244
 * (other items defined in the header)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   245
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   246
EXPORT_C TInt CEAacPlusDecoderIntfcProxy::GetDownSampledMode(TBool& aDsmEnabled)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   247
    {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   248
    TInt status = KErrNone;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   249
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   250
    if (iHasBeenApplied)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   251
        {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   252
    	aDsmEnabled = iCurrentDsmEnabled;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   253
        }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   254
    else
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   255
        {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   256
        status = KErrArgument;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   257
        }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   258
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   259
    return status;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   260
    }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   261
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   262
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   263
 * Applies configuration settings to the decoder.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   264
 * (other items defined in the header)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   265
 */
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   266
EXPORT_C TInt CEAacPlusDecoderIntfcProxy::ApplyConfig()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   267
    {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   268
    TInt status = KErrNone;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   269
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   270
    if (!iHasBeenApplied)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   271
        {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   272
        // Make sure Set() methods for these params were called at least once
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   273
        if (iAudioObjectType == KAacAudioObjectTypeINVALID ||
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   274
            iInputSamplingFrequency == KAacInputSampleRateINVALID ||
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   275
            iNumOfChannels == KAacNumOfChannelsINVALID)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   276
            {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   277
            status = KErrArgument;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   278
            }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   279
        }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   280
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   281
    if (status == KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   282
        {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   283
        TEAacPlusDecoderConfig configParams;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   284
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   285
    	configParams.iAudioObjectType        = iAudioObjectType;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   286
    	configParams.iInputSamplingFrequency = iInputSamplingFrequency;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   287
    	configParams.iNumOfChannels          = iNumOfChannels;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   288
    	configParams.iSbrEnabled             = iSbrEnabled;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   289
    	configParams.iDsmEnabled             = iDsmEnabled;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   290
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   291
    	TPckgBuf<TEAacPlusDecoderConfig> pckgBuf(configParams);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   292
    	TInt status = iCustomCommand.CustomCommandSync(iMessageHandler,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   293
    	                                               EEaacpdimApplyConfig,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   294
    	                                               pckgBuf,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   295
    	                                               KNullDesC8);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   296
    	if (status == KErrNone)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   297
    		{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   298
            iCurrentAudioObjectType        = iAudioObjectType;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   299
            iCurrentInputSamplingFrequency = iInputSamplingFrequency;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   300
            iCurrentNumOfChannels          = iNumOfChannels;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   301
            iCurrentSbrEnabled             = iSbrEnabled;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   302
            iCurrentDsmEnabled             = iDsmEnabled;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   303
    		iHasBeenApplied = ETrue;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   304
    		}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   305
        }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   306
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   307
	return status;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   308
    }
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   309
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   310
// End of File