mpviewplugins/mpplaybackviewplugin/src/mpequalizerwidget.cpp
changeset 20 82baf59ce8dd
child 25 3ec52facab4d
equal deleted inserted replaced
19:4e84c994a771 20:82baf59ce8dd
       
     1 /*
       
     2 * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
       
     3 * All rights reserved.
       
     4 * This component and the accompanying materials are made available
       
     5 * under the terms of "Eclipse Public License v1.0"
       
     6 * which accompanies this distribution, and is available
       
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     8 *
       
     9 * Initial Contributors:
       
    10 * Nokia Corporation - initial contribution.
       
    11 *
       
    12 * Contributors:
       
    13 *
       
    14 * Description: Equalizer widget for Music Player playback view.
       
    15 *
       
    16 */
       
    17 
       
    18 // System includes
       
    19 #include <QStringList>
       
    20 #include <hblabel.h>
       
    21 #include <hbaction.h>
       
    22 #include <hbradiobuttonlist.h>
       
    23 
       
    24 // User includes
       
    25 #include "mpequalizerwidget.h"
       
    26 #include "mpequalizerwrapper.h"
       
    27 #include "mptrace.h"
       
    28 
       
    29 // CONSTANTS
       
    30 const int KEqualizerPresetNone = -1;
       
    31 
       
    32 /*!
       
    33     \class MpEqualizerWidget
       
    34     \brief Provide radio button list to select a predefined eq. preset
       
    35 */
       
    36 
       
    37 /*!
       
    38  Constructs the Equalizer widget.
       
    39  */
       
    40 MpEqualizerWidget::MpEqualizerWidget() :
       
    41     mEqualizerWrapper(0),
       
    42     mPresetsList(0),
       
    43     mOriginalPreset(KEqualizerPresetNone),
       
    44     mEqualizerReady(false)
       
    45 {
       
    46     TX_ENTRY
       
    47     
       
    48     initialize();
       
    49     
       
    50     TX_EXIT
       
    51 }
       
    52 
       
    53 /*!
       
    54  Destructs the widget.
       
    55  */
       
    56 MpEqualizerWidget::~MpEqualizerWidget()
       
    57 {
       
    58     TX_ENTRY
       
    59     
       
    60     delete mEqualizerWrapper;
       
    61     
       
    62     TX_EXIT
       
    63 }
       
    64 
       
    65 /*!
       
    66  Initialize dialog by loading the EqualizerUtility.
       
    67  */
       
    68 void MpEqualizerWidget::initialize()
       
    69 {
       
    70     TX_ENTRY
       
    71     
       
    72     mEqualizerWrapper = new MpEqualizerWrapper( this );
       
    73 
       
    74     connect( mEqualizerWrapper,
       
    75             SIGNAL( equalizerReady() ),
       
    76             this,
       
    77             SLOT( equalizerReady() ) );
       
    78 
       
    79     TX_EXIT
       
    80 }
       
    81 
       
    82 /*!
       
    83  Prepare dialog by loading the presets list.
       
    84  */
       
    85 void MpEqualizerWidget::prepareDialog()
       
    86 {
       
    87     TX_ENTRY
       
    88     
       
    89     setTimeout(NoTimeout);
       
    90     setDismissPolicy(HbDialog::NoDismiss);
       
    91     setFrameType(HbPopup::Strong);
       
    92     setHeadingWidget(new HbLabel(hbTrId("txt_mus_title_select_preset")));    
       
    93     setPrimaryAction(new HbAction(hbTrId("txt_common_button_ok")));
       
    94     setSecondaryAction(new HbAction(hbTrId("txt_common_button_cancel")));
       
    95     
       
    96     if ( mEqualizerReady ) {
       
    97         mOriginalPreset = mEqualizerWrapper->activePreset();
       
    98         QStringList listItems = mEqualizerWrapper->presetNames();
       
    99         listItems.prepend(hbTrId("txt_mus_list_off"));
       
   100     
       
   101         int presetSelected;
       
   102         if (mOriginalPreset == KEqualizerPresetNone) {
       
   103             presetSelected = 0;     //First list item corresponds to "OFF"
       
   104         }
       
   105         else {
       
   106             presetSelected = mOriginalPreset;
       
   107         }
       
   108     
       
   109         mPresetsList = new HbRadioButtonList(listItems, presetSelected, HbRadioButtonList::NoPreview, this);
       
   110         setContentWidget( mPresetsList );  //mPresetsList now owned by HbDialog
       
   111     
       
   112         connect( mPresetsList, 
       
   113                SIGNAL(itemSelected(int)), 
       
   114                this, 
       
   115                SLOT(presetSelected(int)));
       
   116     }
       
   117     
       
   118     connect( secondaryAction(),
       
   119             SIGNAL( triggered(bool) ),
       
   120             this,
       
   121             SLOT( cancelSelected(bool) ) );
       
   122     
       
   123     connect( primaryAction(),
       
   124             SIGNAL( triggered(bool) ),
       
   125             this,
       
   126             SLOT( okSelected(bool) ) );
       
   127     
       
   128     TX_EXIT
       
   129 }
       
   130 
       
   131 /*!
       
   132  Slot to handle when a preset has been selected.
       
   133  */
       
   134 void MpEqualizerWidget::presetSelected(int index)
       
   135 {
       
   136     TX_ENTRY
       
   137     
       
   138     if (mEqualizerWrapper) {
       
   139         if (index == 0) {
       
   140             mEqualizerWrapper->disableEqualizer();
       
   141         }
       
   142         else{
       
   143             mEqualizerWrapper->applyPreset( index );
       
   144         }
       
   145     }
       
   146     
       
   147     TX_EXIT
       
   148 }
       
   149 
       
   150 /*!
       
   151  Slot to handle when Cancel is selected
       
   152  */
       
   153 void MpEqualizerWidget::cancelSelected(bool checked)
       
   154 {
       
   155     TX_ENTRY
       
   156     Q_UNUSED(checked);
       
   157     
       
   158     if (mEqualizerWrapper && mPresetsList) {
       
   159         // Return to the original Preset
       
   160         if (mOriginalPreset != mEqualizerWrapper->activePreset()) {
       
   161             if (mOriginalPreset == KEqualizerPresetNone) {
       
   162                 mEqualizerWrapper->disableEqualizer();
       
   163                 mPresetsList->setSelected( 0 );     //First list item corresponds to "OFF"
       
   164             }
       
   165             else {
       
   166                 mEqualizerWrapper->applyPreset( mOriginalPreset );
       
   167                 mPresetsList->setSelected( mOriginalPreset );
       
   168             }            
       
   169         }
       
   170     }
       
   171     
       
   172     TX_EXIT
       
   173 }
       
   174 
       
   175 /*!
       
   176  Slot to handle when Ok is selected
       
   177  */
       
   178 void MpEqualizerWidget::okSelected(bool checked)
       
   179 {
       
   180     TX_ENTRY
       
   181     Q_UNUSED(checked);    
       
   182     
       
   183     //Update original preset
       
   184     if (mEqualizerWrapper) {
       
   185         mOriginalPreset = mEqualizerWrapper->activePreset();
       
   186     }
       
   187     
       
   188     TX_EXIT
       
   189 }
       
   190 
       
   191 /*!
       
   192  Equalizer utility is ready
       
   193  */
       
   194 void MpEqualizerWidget::equalizerReady()
       
   195 {
       
   196     TX_ENTRY
       
   197     
       
   198     mEqualizerReady = true;
       
   199     
       
   200     TX_EXIT
       
   201 }
       
   202 
       
   203 //End of File