/*
* Copyright (c) 2010 Ixonos Plc.
* All rights reserved.
* This component and the accompanying materials are made available
* under the terms of the "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:
* Ixonos Plc
*
* Description:
*
*/
#ifndef DMHREMCONTARGET_H
#define DMHREMCONTARGET_H
// INCLUDES
#include <remconcoreapitargetobserver.h>
// FORWARD DECLARATIONS
class CRemConCoreApiTarget;
class CRemConInterfaceSelector;
// CLASS DECLARATION
class MMGXMediakeyObserver
{
public:
virtual void HandleVolumeUpL() = 0;
virtual void HandleVolumeDownL() = 0;
};
/**
* mgx listener for RemCon commands.
*/
class CMGXRemConTarget : public CBase, public MRemConCoreApiTargetObserver
{
public: // Methods
// Constructors and destructor
/**
* Static constructor.
*/
static CMGXRemConTarget* NewL(MMGXMediakeyObserver* aObserver);
/**
* Destructor.
*/
virtual ~CMGXRemConTarget();
// Methods from base classes
/**
* From MRemConCoreApiTargetObserver MrccatoCommand.
* A command has been received.
* @param aOperationId The operation ID of the command.
* @param aButtonAct The button action associated with the command.
*/
void MrccatoCommand(TRemConCoreApiOperationId aOperationId, TRemConCoreApiButtonAction aButtonAct);
/**
* From MRemConCoreApiTargetObserver MrccatoPlay.
* A 'play' command has been received.
* @param aSpeed The playback speed.
* @param aButtonAct The button action associated with the command.
*/
void MrccatoPlay(TRemConCoreApiPlaybackSpeed aSpeed, TRemConCoreApiButtonAction aButtonAct);
/**
* From MRemConCoreApiTargetObserver MrccatoTuneFunction.
* A 'tune function' command has been received.
* @param aTwoPart If EFalse, only aMajorChannel is to be used. Otherwise,
* both aMajorChannel and aMinorChannel are to be used.
* @param aMajorChannel The major channel number.
* @param aMinorChannel The minor channel number.
* @param aButtonAct The button action associated with the command.
*/
void MrccatoTuneFunction(TBool aTwoPart, TUint aMajorChannel, TUint aMinorChannel, TRemConCoreApiButtonAction aButtonAct);
/**
* From MRemConCoreApiTargetObserver MrccatoSelectDiskFunction.
* A 'select disk function' has been received.
* @param aDisk The disk.
* @param aButtonAct The button action associated with the command.
*/
void MrccatoSelectDiskFunction(TUint aDisk, TRemConCoreApiButtonAction aButtonAct);
/**
* From MRemConCoreApiTargetObserver MrccatoSelectAvInputFunction.
* A 'select AV input function' has been received.
* @param aAvInputSignalNumber The AV input.
* @param aButtonAct The button action associated with the command.
*/
void MrccatoSelectAvInputFunction(TUint8 aAvInputSignalNumber, TRemConCoreApiButtonAction aButtonAct);
/**
* From MRemConCoreApiTargetObserver MrccatoSelectAudioInputFunction.
* A 'select audio input function' has been received.
* @param aAudioInputSignalNumber The audio input.
* @param aButtonAct The button action associated with the command.
*/
void MrccatoSelectAudioInputFunction(TUint8 aAudioInputSignalNumber, TRemConCoreApiButtonAction aButtonAct);
protected: // Methods
private: //Methods
/**
* C++ default constructor.
*/
CMGXRemConTarget(MMGXMediakeyObserver* aObserver);
/**
* By default Symbian 2nd phase constructor is private.
*/
void ConstructL();
private: // Data
MMGXMediakeyObserver* iObserver;
/** RemCon interface selector. */
CRemConInterfaceSelector* iInterfaceSelector;
/** RemCon Core API target class. */
CRemConCoreApiTarget* iCoreTarget;
};
#endif //MMENUREMCONTARGET_H
// End of File