qtinternetradio/ui/inc/irmediakeyobserver.h
author Pat Downey <patd@symbian.org>
Tue, 18 May 2010 11:36:57 +0100
changeset 4 3f2d53f144fe
parent 0 09774dfdd46b
permissions -rw-r--r--
Merge docml changeset with recent Nokia delivery.

/*
* 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:
*
*/
#ifndef IRMEDIAKEYOBSERVER_H_
#define IRMEDIAKEYOBSERVER_H_

#include <QObject>
#include <remconcoreapitargetobserver.h>

class CRemConInterfaceSelector;
class HbVolumeSliderPopup;
class QTimer;
class IRApplication;
class IRPlayController;

/**
 * This class observes the media key events and controls the volume.
 */

class IRMediaKeyObserver : public QObject, public MRemConCoreApiTargetObserver
{
    Q_OBJECT

public:
    explicit IRMediaKeyObserver(IRApplication* aApplication);
    ~IRMediaKeyObserver();

signals:
    void playPausePressed();
    void stopPressed();

public slots:
    void showVolumeSlider();

private slots:
    void volumeCallback();
    int changingVolume();
    void volumeChanged(int aVolume);

private:
    //from base class MRemConCoreApiTargetObserver
    //respond to the media button
    void MrccatoCommand(TRemConCoreApiOperationId aOperationId,
            TRemConCoreApiButtonAction aButtonAct);

    //from base class MRemConCoreApiTargetObserver
    //respond for play command
    void MrccatoPlay(TRemConCoreApiPlaybackSpeed aSpeed,
            TRemConCoreApiButtonAction aButtonAct);

    void initializeL();

private:
    /*
     * iSelector
     * Instance of CRemConInterfaceSelector For
     * Handling Media Keys
     */
    CRemConInterfaceSelector* iInterfaceSelector;

    /*
     * Respond continuous volume change
     */
    QTimer* iVolumeControlTimer;

    HbVolumeSliderPopup *iVolumeSlider;
    bool iIncreseVolume;

    IRPlayController *iPlayController;
};

#endif /* IRMEDIAKEYOBSERVER_H_ */