diff -r 4e84c994a771 -r 82baf59ce8dd mpviewplugins/mpplaybackviewplugin/src/mpequalizerwidget.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mpviewplugins/mpplaybackviewplugin/src/mpequalizerwidget.cpp Fri Apr 16 14:56:30 2010 +0300 @@ -0,0 +1,203 @@ +/* +* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: Equalizer widget for Music Player playback view. +* +*/ + +// System includes +#include +#include +#include +#include + +// User includes +#include "mpequalizerwidget.h" +#include "mpequalizerwrapper.h" +#include "mptrace.h" + +// CONSTANTS +const int KEqualizerPresetNone = -1; + +/*! + \class MpEqualizerWidget + \brief Provide radio button list to select a predefined eq. preset +*/ + +/*! + Constructs the Equalizer widget. + */ +MpEqualizerWidget::MpEqualizerWidget() : + mEqualizerWrapper(0), + mPresetsList(0), + mOriginalPreset(KEqualizerPresetNone), + mEqualizerReady(false) +{ + TX_ENTRY + + initialize(); + + TX_EXIT +} + +/*! + Destructs the widget. + */ +MpEqualizerWidget::~MpEqualizerWidget() +{ + TX_ENTRY + + delete mEqualizerWrapper; + + TX_EXIT +} + +/*! + Initialize dialog by loading the EqualizerUtility. + */ +void MpEqualizerWidget::initialize() +{ + TX_ENTRY + + mEqualizerWrapper = new MpEqualizerWrapper( this ); + + connect( mEqualizerWrapper, + SIGNAL( equalizerReady() ), + this, + SLOT( equalizerReady() ) ); + + TX_EXIT +} + +/*! + Prepare dialog by loading the presets list. + */ +void MpEqualizerWidget::prepareDialog() +{ + TX_ENTRY + + setTimeout(NoTimeout); + setDismissPolicy(HbDialog::NoDismiss); + setFrameType(HbPopup::Strong); + setHeadingWidget(new HbLabel(hbTrId("txt_mus_title_select_preset"))); + setPrimaryAction(new HbAction(hbTrId("txt_common_button_ok"))); + setSecondaryAction(new HbAction(hbTrId("txt_common_button_cancel"))); + + if ( mEqualizerReady ) { + mOriginalPreset = mEqualizerWrapper->activePreset(); + QStringList listItems = mEqualizerWrapper->presetNames(); + listItems.prepend(hbTrId("txt_mus_list_off")); + + int presetSelected; + if (mOriginalPreset == KEqualizerPresetNone) { + presetSelected = 0; //First list item corresponds to "OFF" + } + else { + presetSelected = mOriginalPreset; + } + + mPresetsList = new HbRadioButtonList(listItems, presetSelected, HbRadioButtonList::NoPreview, this); + setContentWidget( mPresetsList ); //mPresetsList now owned by HbDialog + + connect( mPresetsList, + SIGNAL(itemSelected(int)), + this, + SLOT(presetSelected(int))); + } + + connect( secondaryAction(), + SIGNAL( triggered(bool) ), + this, + SLOT( cancelSelected(bool) ) ); + + connect( primaryAction(), + SIGNAL( triggered(bool) ), + this, + SLOT( okSelected(bool) ) ); + + TX_EXIT +} + +/*! + Slot to handle when a preset has been selected. + */ +void MpEqualizerWidget::presetSelected(int index) +{ + TX_ENTRY + + if (mEqualizerWrapper) { + if (index == 0) { + mEqualizerWrapper->disableEqualizer(); + } + else{ + mEqualizerWrapper->applyPreset( index ); + } + } + + TX_EXIT +} + +/*! + Slot to handle when Cancel is selected + */ +void MpEqualizerWidget::cancelSelected(bool checked) +{ + TX_ENTRY + Q_UNUSED(checked); + + if (mEqualizerWrapper && mPresetsList) { + // Return to the original Preset + if (mOriginalPreset != mEqualizerWrapper->activePreset()) { + if (mOriginalPreset == KEqualizerPresetNone) { + mEqualizerWrapper->disableEqualizer(); + mPresetsList->setSelected( 0 ); //First list item corresponds to "OFF" + } + else { + mEqualizerWrapper->applyPreset( mOriginalPreset ); + mPresetsList->setSelected( mOriginalPreset ); + } + } + } + + TX_EXIT +} + +/*! + Slot to handle when Ok is selected + */ +void MpEqualizerWidget::okSelected(bool checked) +{ + TX_ENTRY + Q_UNUSED(checked); + + //Update original preset + if (mEqualizerWrapper) { + mOriginalPreset = mEqualizerWrapper->activePreset(); + } + + TX_EXIT +} + +/*! + Equalizer utility is ready + */ +void MpEqualizerWidget::equalizerReady() +{ + TX_ENTRY + + mEqualizerReady = true; + + TX_EXIT +} + +//End of File