mpengine/src/mpequalizerframeworkwrapper_p.cpp
author hgs
Tue, 24 Aug 2010 03:36:14 -0500
changeset 51 560ce2306a17
parent 36 a0afa279b8fe
permissions -rw-r--r--
201033
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
35
hgs
parents:
diff changeset
     1
/*
hgs
parents:
diff changeset
     2
* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
hgs
parents:
diff changeset
     3
* All rights reserved.
hgs
parents:
diff changeset
     4
* This component and the accompanying materials are made available
hgs
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.0"
hgs
parents:
diff changeset
     6
* which accompanies this distribution, and is available
hgs
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
hgs
parents:
diff changeset
     8
*
hgs
parents:
diff changeset
     9
* Initial Contributors:
hgs
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
hgs
parents:
diff changeset
    11
*
hgs
parents:
diff changeset
    12
* Contributors:
hgs
parents:
diff changeset
    13
* 
hgs
parents:
diff changeset
    14
* Description: Wrapper for equalizer framework - private implementation.
hgs
parents:
diff changeset
    15
*
hgs
parents:
diff changeset
    16
*/
hgs
parents:
diff changeset
    17
hgs
parents:
diff changeset
    18
// System includes
hgs
parents:
diff changeset
    19
#include <QDebug>
hgs
parents:
diff changeset
    20
#include <QStringList>
hgs
parents:
diff changeset
    21
#include <hbglobal.h>
hgs
parents:
diff changeset
    22
#include <AudioEqualizerUtility.h>
hgs
parents:
diff changeset
    23
#include <EqualizerConstants.h>
hgs
parents:
diff changeset
    24
#include <mpxuser.h>
hgs
parents:
diff changeset
    25
hgs
parents:
diff changeset
    26
// User includes
hgs
parents:
diff changeset
    27
#include "mpequalizerframeworkwrapper.h"
hgs
parents:
diff changeset
    28
#include "mpequalizerframeworkwrapper_p.h"
hgs
parents:
diff changeset
    29
#include "mptrace.h"
hgs
parents:
diff changeset
    30
hgs
parents:
diff changeset
    31
// CONSTANTS
36
hgs
parents: 35
diff changeset
    32
_LIT( KMPXNullSoundPath, "\\system\\data\\nullsound.mp3" );
35
hgs
parents:
diff changeset
    33
hgs
parents:
diff changeset
    34
/*!
hgs
parents:
diff changeset
    35
    \class MpEqualizerFrameworkWrapperPrivate
hgs
parents:
diff changeset
    36
    \ingroup musicplayer
hgs
parents:
diff changeset
    37
    \brief Wrapper for equalizer framework - private implementation.
hgs
parents:
diff changeset
    38
    
hgs
parents:
diff changeset
    39
    This is a private implementation of the audio eqalizer wrapper 
hgs
parents:
diff changeset
    40
    utilties interface.
hgs
parents:
diff changeset
    41
hgs
parents:
diff changeset
    42
*/
hgs
parents:
diff changeset
    43
hgs
parents:
diff changeset
    44
/*!
hgs
parents:
diff changeset
    45
    Constructs a new MpEqualizerFrameworkWrapper with \a parent and initializes its
hgs
parents:
diff changeset
    46
    private imaplementation.
hgs
parents:
diff changeset
    47
*/
hgs
parents:
diff changeset
    48
MpEqualizerFrameworkWrapperPrivate::MpEqualizerFrameworkWrapperPrivate( MpEqualizerFrameworkWrapper *wrapper ): 
hgs
parents:
diff changeset
    49
    q_ptr( wrapper ),
hgs
parents:
diff changeset
    50
    mEqualizerUtility (NULL)
hgs
parents:
diff changeset
    51
{
hgs
parents:
diff changeset
    52
    TX_LOG
hgs
parents:
diff changeset
    53
}
hgs
parents:
diff changeset
    54
hgs
parents:
diff changeset
    55
/*!
hgs
parents:
diff changeset
    56
    Destructs the class.    
hgs
parents:
diff changeset
    57
 */
hgs
parents:
diff changeset
    58
MpEqualizerFrameworkWrapperPrivate::~MpEqualizerFrameworkWrapperPrivate()
hgs
parents:
diff changeset
    59
{
hgs
parents:
diff changeset
    60
    TX_ENTRY
hgs
parents:
diff changeset
    61
hgs
parents:
diff changeset
    62
    delete mEqualizerUtility;
hgs
parents:
diff changeset
    63
    
hgs
parents:
diff changeset
    64
    if ( mMdaPlayUtility ) {
hgs
parents:
diff changeset
    65
        mMdaPlayUtility->Close();
hgs
parents:
diff changeset
    66
    }
hgs
parents:
diff changeset
    67
    delete mMdaPlayUtility;
hgs
parents:
diff changeset
    68
hgs
parents:
diff changeset
    69
    TX_EXIT
hgs
parents:
diff changeset
    70
}
hgs
parents:
diff changeset
    71
hgs
parents:
diff changeset
    72
/*!
hgs
parents:
diff changeset
    73
    Calls the DoInit to initialize Symbian based components.
hgs
parents:
diff changeset
    74
    
hgs
parents:
diff changeset
    75
    \sa DoInitL()
hgs
parents:
diff changeset
    76
 */
hgs
parents:
diff changeset
    77
void MpEqualizerFrameworkWrapperPrivate::init()
hgs
parents:
diff changeset
    78
{
hgs
parents:
diff changeset
    79
    TX_ENTRY
hgs
parents:
diff changeset
    80
hgs
parents:
diff changeset
    81
    TRAPD(err, DoInitL());
hgs
parents:
diff changeset
    82
    if ( err != KErrNone ) {
hgs
parents:
diff changeset
    83
        TX_LOG_ARGS("MpEqualizerFrameworkWrapperPrivate::init err = " << err);
hgs
parents:
diff changeset
    84
    }
hgs
parents:
diff changeset
    85
    
hgs
parents:
diff changeset
    86
    TX_EXIT
hgs
parents:
diff changeset
    87
}
hgs
parents:
diff changeset
    88
hgs
parents:
diff changeset
    89
/*!
hgs
parents:
diff changeset
    90
    Get the preset name key by giving preset index.
hgs
parents:
diff changeset
    91
hgs
parents:
diff changeset
    92
 */
hgs
parents:
diff changeset
    93
int MpEqualizerFrameworkWrapperPrivate::getPresetNameKey( int presetIndex )
hgs
parents:
diff changeset
    94
{
hgs
parents:
diff changeset
    95
    TX_ENTRY_ARGS( "preset index=" << presetIndex );
hgs
parents:
diff changeset
    96
hgs
parents:
diff changeset
    97
    int presetKey( KEqualizerPresetNone );
hgs
parents:
diff changeset
    98
    if ( mEqualizerUtility ) {
hgs
parents:
diff changeset
    99
        TRAPD( err, presetKey = DoGetPresetNameKeyL( presetIndex ) );
hgs
parents:
diff changeset
   100
        if ( err != KErrNone ) {
hgs
parents:
diff changeset
   101
            TX_LOG_ARGS("DoGetPresetNameKeyL Error  = " << err);
hgs
parents:
diff changeset
   102
            presetKey = KEqualizerPresetNone;
hgs
parents:
diff changeset
   103
        }
hgs
parents:
diff changeset
   104
        TX_LOG_ARGS( "Preset key in engine =" << presetKey );
hgs
parents:
diff changeset
   105
    } 
hgs
parents:
diff changeset
   106
    else {
hgs
parents:
diff changeset
   107
        TX_LOG_ARGS( "Equalizer not ready." );
hgs
parents:
diff changeset
   108
    }
hgs
parents:
diff changeset
   109
hgs
parents:
diff changeset
   110
    TX_EXIT_ARGS( "Preset Name Key = " << presetKey );
hgs
parents:
diff changeset
   111
    
hgs
parents:
diff changeset
   112
    return presetKey;
hgs
parents:
diff changeset
   113
}
hgs
parents:
diff changeset
   114
hgs
parents:
diff changeset
   115
/*!
hgs
parents:
diff changeset
   116
    Get the preset index by giving preset name key.
hgs
parents:
diff changeset
   117
    
hgs
parents:
diff changeset
   118
 */
hgs
parents:
diff changeset
   119
int MpEqualizerFrameworkWrapperPrivate::getPresetIndex( int presetNameKey )
hgs
parents:
diff changeset
   120
{
hgs
parents:
diff changeset
   121
    TX_ENTRY_ARGS( "Preset Name Key = " << presetNameKey);
hgs
parents:
diff changeset
   122
51
hgs
parents: 36
diff changeset
   123
    int presetIndex = 0;
35
hgs
parents:
diff changeset
   124
    if ( mEqualizerUtility && presetNameKey != KEqualizerPresetNone ) {
hgs
parents:
diff changeset
   125
        TArray<TEfAudioEqualizerUtilityPreset> presetArray = mEqualizerUtility->Presets();
hgs
parents:
diff changeset
   126
        for ( TInt i = 0; i < presetArray.Count(); i++ ) {
hgs
parents:
diff changeset
   127
            TX_LOG_ARGS("presetArray[" << i << "].iPresetNameKey (" 
hgs
parents:
diff changeset
   128
                << presetArray[i].iPresetNameKey << ") vs presetId (" <<presetNameKey << ")");
hgs
parents:
diff changeset
   129
            if ( presetArray[i].iPresetNameKey == static_cast<TUint32>( presetNameKey ) ) {
51
hgs
parents: 36
diff changeset
   130
				//Set the current preset index. 1 is added to index because index 0 represent "Off" at UI level.
hgs
parents: 36
diff changeset
   131
                presetIndex = i+1;
35
hgs
parents:
diff changeset
   132
                break;
hgs
parents:
diff changeset
   133
            }
hgs
parents:
diff changeset
   134
        }
hgs
parents:
diff changeset
   135
    }
hgs
parents:
diff changeset
   136
hgs
parents:
diff changeset
   137
    TX_EXIT_ARGS( "Preset Index = " << presetIndex );
hgs
parents:
diff changeset
   138
hgs
parents:
diff changeset
   139
    return presetIndex;
hgs
parents:
diff changeset
   140
}
hgs
parents:
diff changeset
   141
hgs
parents:
diff changeset
   142
hgs
parents:
diff changeset
   143
/*!
hgs
parents:
diff changeset
   144
    Returning the list of availale preset names.  
hgs
parents:
diff changeset
   145
hgs
parents:
diff changeset
   146
    \sa CAudioEqualizerUtility
hgs
parents:
diff changeset
   147
 */
hgs
parents:
diff changeset
   148
QStringList MpEqualizerFrameworkWrapperPrivate::presetNames()
hgs
parents:
diff changeset
   149
{
hgs
parents:
diff changeset
   150
    TX_ENTRY
hgs
parents:
diff changeset
   151
hgs
parents:
diff changeset
   152
    QStringList presetList;
hgs
parents:
diff changeset
   153
hgs
parents:
diff changeset
   154
    if ( mEqualizerUtility == NULL ) {
hgs
parents:
diff changeset
   155
        TX_LOG_ARGS( "Equalizer not ready." );
hgs
parents:
diff changeset
   156
        return presetList;
hgs
parents:
diff changeset
   157
    }
hgs
parents:
diff changeset
   158
hgs
parents:
diff changeset
   159
    TArray<TEfAudioEqualizerUtilityPreset> presetArray = mEqualizerUtility->Presets();
hgs
parents:
diff changeset
   160
    for (TInt i=0; i<presetArray.Count(); i++) {
hgs
parents:
diff changeset
   161
        TPresetName selectedItem = presetArray[i].iPresetName;
hgs
parents:
diff changeset
   162
        presetList << QString::fromUtf16( selectedItem.Ptr(), selectedItem.Length() );
hgs
parents:
diff changeset
   163
    }
hgs
parents:
diff changeset
   164
hgs
parents:
diff changeset
   165
    TX_EXIT_ARGS( "PresetNames=" << presetList);
hgs
parents:
diff changeset
   166
hgs
parents:
diff changeset
   167
    return presetList;
hgs
parents:
diff changeset
   168
}
hgs
parents:
diff changeset
   169
hgs
parents:
diff changeset
   170
/*!
hgs
parents:
diff changeset
   171
 \internal
hgs
parents:
diff changeset
   172
 */
hgs
parents:
diff changeset
   173
void MpEqualizerFrameworkWrapperPrivate::DoInitL()
hgs
parents:
diff changeset
   174
{
hgs
parents:
diff changeset
   175
    TX_ENTRY
hgs
parents:
diff changeset
   176
hgs
parents:
diff changeset
   177
    if (mMdaPlayUtility) {
hgs
parents:
diff changeset
   178
        mMdaPlayUtility->Close();
hgs
parents:
diff changeset
   179
        delete mMdaPlayUtility;
hgs
parents:
diff changeset
   180
        mMdaPlayUtility = NULL;
hgs
parents:
diff changeset
   181
    }
hgs
parents:
diff changeset
   182
    
hgs
parents:
diff changeset
   183
    mMdaPlayUtility = ( CMdaAudioPlayerUtility* )User::LeaveIfNull(
hgs
parents:
diff changeset
   184
        CMdaAudioPlayerUtility::NewL(
hgs
parents:
diff changeset
   185
            *this,
hgs
parents:
diff changeset
   186
            EMdaPriorityMin,
hgs
parents:
diff changeset
   187
            EMdaPriorityPreferenceNone ));
hgs
parents:
diff changeset
   188
hgs
parents:
diff changeset
   189
    TX_LOG_ARGS("Loading null sound");
hgs
parents:
diff changeset
   190
    TFileName nullSoundPath( KMPXNullSoundPath );
hgs
parents:
diff changeset
   191
    User::LeaveIfError( MPXUser::CompleteWithDllPath( nullSoundPath ) );
hgs
parents:
diff changeset
   192
    TX_LOG_ARGS("Loading null sound done!");
hgs
parents:
diff changeset
   193
    mMdaPlayUtility->OpenFileL( nullSoundPath );
hgs
parents:
diff changeset
   194
    
hgs
parents:
diff changeset
   195
    TX_EXIT
hgs
parents:
diff changeset
   196
}
hgs
parents:
diff changeset
   197
hgs
parents:
diff changeset
   198
/*!
hgs
parents:
diff changeset
   199
 \internal
hgs
parents:
diff changeset
   200
 */
hgs
parents:
diff changeset
   201
TInt MpEqualizerFrameworkWrapperPrivate::DoGetPresetNameKeyL( const TInt presetIndex ) const 
hgs
parents:
diff changeset
   202
{
hgs
parents:
diff changeset
   203
    TX_ENTRY_ARGS( "preset index=" << presetIndex );
hgs
parents:
diff changeset
   204
hgs
parents:
diff changeset
   205
    TInt presetNameKey = KErrNotFound;
hgs
parents:
diff changeset
   206
    TPresetName presetName = mEqualizerUtility->GetPresetL( presetIndex );
hgs
parents:
diff changeset
   207
hgs
parents:
diff changeset
   208
    TArray<TEfAudioEqualizerUtilityPreset> presets = mEqualizerUtility->Presets();
hgs
parents:
diff changeset
   209
    for ( TInt index = 0; index < presets.Count(); index++ ) {
hgs
parents:
diff changeset
   210
        TPresetName selectedItem = presets[index].iPresetName;
hgs
parents:
diff changeset
   211
        TX_LOG_ARGS(" Comparing..." << presets[index].iPresetNameKey );
hgs
parents:
diff changeset
   212
        if ( selectedItem == presetName ) {
hgs
parents:
diff changeset
   213
            presetNameKey = presets[index].iPresetNameKey;
hgs
parents:
diff changeset
   214
            TX_LOG_ARGS(" Comparing mached presetNameKey = " << presetNameKey );
hgs
parents:
diff changeset
   215
            break;
hgs
parents:
diff changeset
   216
            }
hgs
parents:
diff changeset
   217
    }
hgs
parents:
diff changeset
   218
hgs
parents:
diff changeset
   219
    TX_EXIT
hgs
parents:
diff changeset
   220
hgs
parents:
diff changeset
   221
    return presetNameKey;
hgs
parents:
diff changeset
   222
}
hgs
parents:
diff changeset
   223
hgs
parents:
diff changeset
   224
/*!
hgs
parents:
diff changeset
   225
 \internal
hgs
parents:
diff changeset
   226
 */
hgs
parents:
diff changeset
   227
void MpEqualizerFrameworkWrapperPrivate::MapcInitComplete(
hgs
parents:
diff changeset
   228
    TInt aError,
hgs
parents:
diff changeset
   229
    const TTimeIntervalMicroSeconds& /* aDuration */ )
hgs
parents:
diff changeset
   230
{
hgs
parents:
diff changeset
   231
    TX_ENTRY_ARGS( "aError=" << aError );
hgs
parents:
diff changeset
   232
hgs
parents:
diff changeset
   233
    if ( !aError ) {
hgs
parents:
diff changeset
   234
        TRAPD(err, mEqualizerUtility = CAudioEqualizerUtility::NewL( *mMdaPlayUtility ) );
hgs
parents:
diff changeset
   235
        if ( err == KErrNone ) {
hgs
parents:
diff changeset
   236
            emit q_ptr->equalizerReady();
hgs
parents:
diff changeset
   237
        }
hgs
parents:
diff changeset
   238
        else {
hgs
parents:
diff changeset
   239
            TX_ENTRY_ARGS( "CAudioEquqlizerUtility error=" << err );
hgs
parents:
diff changeset
   240
        }
hgs
parents:
diff changeset
   241
    }
hgs
parents:
diff changeset
   242
    else {
hgs
parents:
diff changeset
   243
        TX_ENTRY_ARGS( "MapcInitComplete error=" << aError );
hgs
parents:
diff changeset
   244
    }
hgs
parents:
diff changeset
   245
hgs
parents:
diff changeset
   246
    TX_EXIT
hgs
parents:
diff changeset
   247
}
hgs
parents:
diff changeset
   248
hgs
parents:
diff changeset
   249
/*!
hgs
parents:
diff changeset
   250
 \internal
hgs
parents:
diff changeset
   251
 */
hgs
parents:
diff changeset
   252
void MpEqualizerFrameworkWrapperPrivate::MapcPlayComplete(
hgs
parents:
diff changeset
   253
    TInt /* aError */ )
hgs
parents:
diff changeset
   254
{
hgs
parents:
diff changeset
   255
    TX_LOG
hgs
parents:
diff changeset
   256
    // Do nothing
hgs
parents:
diff changeset
   257
}
hgs
parents:
diff changeset
   258
hgs
parents:
diff changeset
   259
//End of File