diff -r 22de2e391156 -r 20ac952a623c remotecontrol/remotecontrolfw/client/coreapi/public/remconcoreapitarget.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/remotecontrol/remotecontrolfw/client/coreapi/public/remconcoreapitarget.h Wed Oct 13 16:20:29 2010 +0300 @@ -0,0 +1,553 @@ +// Copyright (c) 2004-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: +// + +/** + @file + @publishedAll + @released +*/ + +#ifndef REMCONCOREAPITARGET_H +#define REMCONCOREAPITARGET_H + +#include +#include +#include +#include + +class MRemConCoreApiTargetObserver; +class CRemConInterfaceSelector; + +/** +Client-instantiable type supporting sending Core API responses. +*/ +NONSHARABLE_CLASS(CRemConCoreApiTarget) : public CRemConInterfaceBase, + public MRemConInterfaceIf + { +public: + /** + Factory function. + @param aInterfaceSelector The interface selector. The client must have + created one of these first. + @param aObserver The observer of this interface. + @return A new CRemConCoreApiTarget, owned by the interface selector. + */ + IMPORT_C static CRemConCoreApiTarget* NewL(CRemConInterfaceSelector& aInterfaceSelector, + MRemConCoreApiTargetObserver& aObserver); + /** + Factory function. + @param aInterfaceSelector The interface selector. The client must have + created one of these first. + @param aObserver The observer of this interface. + @param aFeatureSupported The Array is used to stote features supportd by the client + + @return A new CRemConCoreApiTarget, owned by the interface selector. + */ + IMPORT_C static CRemConCoreApiTarget* NewL(CRemConInterfaceSelector& aInterfaceSelector, + MRemConCoreApiTargetObserver& aObserver,const RArray& aFeatureSupported); + + /** Destructor */ + IMPORT_C ~CRemConCoreApiTarget(); + +public: + /** Send a 'select' response. + Only one response per target session can be outstanding at any one time. + @param aStatus Used by RemCon to indicate completion of the send request. + @param aError The response error. + */ + IMPORT_C void SelectResponse(TRequestStatus& aStatus, TInt aError); + + /** Send an 'up' response. + Only one response per target session can be outstanding at any one time. + @param aStatus Used by RemCon to indicate completion of the send request. + @param aError The response error. + */ + IMPORT_C void UpResponse(TRequestStatus& aStatus, TInt aError); + + /** Send a 'down' response. + Only one response per target session can be outstanding at any one time. + @param aStatus Used by RemCon to indicate completion of the send request. + @param aError The response error. + */ + IMPORT_C void DownResponse(TRequestStatus& aStatus, TInt aError); + + /** Send a 'left' response. + Only one response per target session can be outstanding at any one time. + @param aStatus Used by RemCon to indicate completion of the send request. + @param aError The response error. + */ + IMPORT_C void LeftResponse(TRequestStatus& aStatus, TInt aError); + + /** Send a 'right' response. + Only one response per target session can be outstanding at any one time. + @param aStatus Used by RemCon to indicate completion of the send request. + @param aError The response error. + */ + IMPORT_C void RightResponse(TRequestStatus& aStatus, TInt aError); + + /** Send a 'right up' response. + Only one response per target session can be outstanding at any one time. + @param aStatus Used by RemCon to indicate completion of the send request. + @param aError The response error. + */ + IMPORT_C void RightUpResponse(TRequestStatus& aStatus, TInt aError); + + /** Send a 'right down' response. + Only one response per target session can be outstanding at any one time. + @param aStatus Used by RemCon to indicate completion of the send request. + @param aError The response error. + */ + IMPORT_C void RightDownResponse(TRequestStatus& aStatus, TInt aError); + + /** Send a 'left up' response. + Only one response per target session can be outstanding at any one time. + @param aStatus Used by RemCon to indicate completion of the send request. + @param aError The response error. + */ + IMPORT_C void LeftUpResponse(TRequestStatus& aStatus, TInt aError); + + /** Send a 'left down' response. + Only one response per target session can be outstanding at any one time. + @param aStatus Used by RemCon to indicate completion of the send request. + @param aError The response error. + */ + IMPORT_C void LeftDownResponse(TRequestStatus& aStatus, TInt aError); + + /** Send a 'root menu' response. + Only one response per target session can be outstanding at any one time. + @param aStatus Used by RemCon to indicate completion of the send request. + @param aError The response error. + */ + IMPORT_C void RootMenuResponse(TRequestStatus& aStatus, TInt aError); + + /** Send a 'setup menu' response. + Only one response per target session can be outstanding at any one time. + @param aStatus Used by RemCon to indicate completion of the send request. + @param aError The response error. + */ + IMPORT_C void SetupMenuResponse(TRequestStatus& aStatus, TInt aError); + + /** Send a 'contents menu' response. + Only one response per target session can be outstanding at any one time. + @param aStatus Used by RemCon to indicate completion of the send request. + @param aError The response error. + */ + IMPORT_C void ContentsMenuResponse(TRequestStatus& aStatus, TInt aError); + + /** Send a 'favorite menu' response. + Only one response per target session can be outstanding at any one time. + @param aStatus Used by RemCon to indicate completion of the send request. + @param aError The response error. + */ + IMPORT_C void FavoriteMenuResponse(TRequestStatus& aStatus, TInt aError); + + /** Send an 'exit' response. + Only one response per target session can be outstanding at any one time. + @param aStatus Used by RemCon to indicate completion of the send request. + @param aError The response error. + */ + IMPORT_C void ExitResponse(TRequestStatus& aStatus, TInt aError); + + /** Send a '0' response. + Only one response per target session can be outstanding at any one time. + @param aStatus Used by RemCon to indicate completion of the send request. + @param aError The response error. + */ + IMPORT_C void _0Response(TRequestStatus& aStatus, TInt aError); + + /** Send a '1' response. + Only one response per target session can be outstanding at any one time. + @param aStatus Used by RemCon to indicate completion of the send request. + @param aError The response error. + */ + IMPORT_C void _1Response(TRequestStatus& aStatus, TInt aError); + + /** Send a '2' response. + Only one response per target session can be outstanding at any one time. + @param aStatus Used by RemCon to indicate completion of the send request. + @param aError The response error. + */ + IMPORT_C void _2Response(TRequestStatus& aStatus, TInt aError); + + /** Send a '3' response. + Only one response per target session can be outstanding at any one time. + @param aStatus Used by RemCon to indicate completion of the send request. + @param aError The response error. + */ + IMPORT_C void _3Response(TRequestStatus& aStatus, TInt aError); + + /** Send a '4'response. + Only one response per target session can be outstanding at any one time. + @param aStatus Used by RemCon to indicate completion of the send request. + @param aError The response error. + */ + IMPORT_C void _4Response(TRequestStatus& aStatus, TInt aError); + + /** Send a '5' response. + Only one response per target session can be outstanding at any one time. + @param aStatus Used by RemCon to indicate completion of the send request. + @param aError The response error. + */ + IMPORT_C void _5Response(TRequestStatus& aStatus, TInt aError); + + /** Send a '6' response. + Only one response per target session can be outstanding at any one time. + @param aStatus Used by RemCon to indicate completion of the send request. + @param aError The response error. + */ + IMPORT_C void _6Response(TRequestStatus& aStatus, TInt aError); + + /** Send a '7' response. + Only one response per target session can be outstanding at any one time. + @param aStatus Used by RemCon to indicate completion of the send request. + @param aError The response error. + */ + IMPORT_C void _7Response(TRequestStatus& aStatus, TInt aError); + + /** Send a '8' response. + Only one response per target session can be outstanding at any one time. + @param aStatus Used by RemCon to indicate completion of the send request. + @param aError The response error. + */ + IMPORT_C void _8Response(TRequestStatus& aStatus, TInt aError); + + /** Send a '9' response. + Only one response per target session can be outstanding at any one time. + @param aStatus Used by RemCon to indicate completion of the send request. + @param aError The response error. + */ + IMPORT_C void _9Response(TRequestStatus& aStatus, TInt aError); + + /** Send a 'dot' response. + Only one response per target session can be outstanding at any one time. + @param aStatus Used by RemCon to indicate completion of the send request. + @param aError The response error. + */ + IMPORT_C void DotResponse(TRequestStatus& aStatus, TInt aError); + + /** Send an 'enter' response. + Only one response per target session can be outstanding at any one time. + @param aStatus Used by RemCon to indicate completion of the send request. + @param aError The response error. + */ + IMPORT_C void EnterResponse(TRequestStatus& aStatus, TInt aError); + + /** Send a 'clear' response. + Only one response per target session can be outstanding at any one time. + @param aStatus Used by RemCon to indicate completion of the send request. + @param aError The response error. + */ + IMPORT_C void ClearResponse(TRequestStatus& aStatus, TInt aError); + + /** Send a 'channel up' response. + Only one response per target session can be outstanding at any one time. + @param aStatus Used by RemCon to indicate completion of the send request. + @param aError The response error. + */ + IMPORT_C void ChannelUpResponse(TRequestStatus& aStatus, TInt aError); + + /** Send a 'channel down' response. + Only one response per target session can be outstanding at any one time. + @param aStatus Used by RemCon to indicate completion of the send request. + @param aError The response error. + */ + IMPORT_C void ChannelDownResponse(TRequestStatus& aStatus, TInt aError); + + /** Send a 'previous channel' response. + Only one response per target session can be outstanding at any one time. + @param aStatus Used by RemCon to indicate completion of the send request. + @param aError The response error. + */ + IMPORT_C void PreviousChannelResponse(TRequestStatus& aStatus, TInt aError); + + /** Send a 'sound select' response. + Only one response per target session can be outstanding at any one time. + @param aStatus Used by RemCon to indicate completion of the send request. + @param aError The response error. + */ + IMPORT_C void SoundSelectResponse(TRequestStatus& aStatus, TInt aError); + + /** Send a 'input select' response. + Only one response per target session can be outstanding at any one time. + @param aStatus Used by RemCon to indicate completion of the send request. + @param aError The response error. + */ + IMPORT_C void InputSelectResponse(TRequestStatus& aStatus, TInt aError); + + /** Send a 'display information' response. + Only one response per target session can be outstanding at any one time. + @param aStatus Used by RemCon to indicate completion of the send request. + @param aError The response error. + */ + IMPORT_C void DisplayInformationResponse(TRequestStatus& aStatus, TInt aError); + + /** Send a 'help' response. + Only one response per target session can be outstanding at any one time. + @param aStatus Used by RemCon to indicate completion of the send request. + @param aError The response error. + */ + IMPORT_C void HelpResponse(TRequestStatus& aStatus, TInt aError); + + /** Send a 'page up' response. + Only one response per target session can be outstanding at any one time. + @param aStatus Used by RemCon to indicate completion of the send request. + @param aError The response error. + */ + IMPORT_C void PageUpResponse(TRequestStatus& aStatus, TInt aError); + + /** Send a 'page down' response. + Only one response per target session can be outstanding at any one time. + @param aStatus Used by RemCon to indicate completion of the send request. + @param aError The response error. + */ + IMPORT_C void PageDownResponse(TRequestStatus& aStatus, TInt aError); + + /** Send a 'power' response. + Only one response per target session can be outstanding at any one time. + @param aStatus Used by RemCon to indicate completion of the send request. + @param aError The response error. + */ + IMPORT_C void PowerResponse(TRequestStatus& aStatus, TInt aError); + + /** Send a 'volume up' response. + Only one response per target session can be outstanding at any one time. + @param aStatus Used by RemCon to indicate completion of the send request. + @param aError The response error. + */ + IMPORT_C void VolumeUpResponse(TRequestStatus& aStatus, TInt aError); + + /** Send a 'volume down' response. + Only one response per target session can be outstanding at any one time. + @param aStatus Used by RemCon to indicate completion of the send request. + @param aError The response error. + */ + IMPORT_C void VolumeDownResponse(TRequestStatus& aStatus, TInt aError); + + /** Send a 'mute' response. + Only one response per target session can be outstanding at any one time. + @param aStatus Used by RemCon to indicate completion of the send request. + @param aError The response error. + */ + IMPORT_C void MuteResponse(TRequestStatus& aStatus, TInt aError); + + /** Send a play response. + Only one response per target session can be outstanding at any one time. + @param aStatus Used by RemCon to indicate completion of the request. + @param aError The response error. + */ + IMPORT_C void PlayResponse(TRequestStatus& aStatus, TInt aError); + + /** Send a stop response. + Only one response per target session can be outstanding at any one time. + @param aStatus Used by RemCon to indicate completion of the request. + @param aError The response error. + */ + IMPORT_C void StopResponse(TRequestStatus& aStatus, TInt aError); + + /** Send a 'pause' response. + Only one response per target session can be outstanding at any one time. + @param aStatus Used by RemCon to indicate completion of the send request. + @param aError The response error. + */ + IMPORT_C void PauseResponse(TRequestStatus& aStatus, TInt aError); + + /** Send a 'record' response. + Only one response per target session can be outstanding at any one time. + @param aStatus Used by RemCon to indicate completion of the send request. + @param aError The response error. + */ + IMPORT_C void RecordResponse(TRequestStatus& aStatus, TInt aError); + + /** Send a 'rewind' response. + Only one response per target session can be outstanding at any one time. + @param aStatus Used by RemCon to indicate completion of the send request. + @param aError The response error. + */ + IMPORT_C void RewindResponse(TRequestStatus& aStatus, TInt aError); + + /** Send a 'fast forward' response. + Only one response per target session can be outstanding at any one time. + @param aStatus Used by RemCon to indicate completion of the send request. + @param aError The response error. + */ + IMPORT_C void FastForwardResponse(TRequestStatus& aStatus, TInt aError); + + /** Send an 'eject' response. + Only one response per target session can be outstanding at any one time. + @param aStatus Used by RemCon to indicate completion of the send request. + @param aError The response error. + */ + IMPORT_C void EjectResponse(TRequestStatus& aStatus, TInt aError); + + /** Send a 'forward' response. + Only one response per target session can be outstanding at any one time. + @param aStatus Used by RemCon to indicate completion of the send request. + @param aError The response error. + */ + IMPORT_C void ForwardResponse(TRequestStatus& aStatus, TInt aError); + + /** Send a 'backward' response. + Only one response per target session can be outstanding at any one time. + @param aStatus Used by RemCon to indicate completion of the send request. + @param aError The response error. + */ + IMPORT_C void BackwardResponse(TRequestStatus& aStatus, TInt aError); + + /** Send an 'angle' response. + Only one response per target session can be outstanding at any one time. + @param aStatus Used by RemCon to indicate completion of the send request. + @param aError The response error. + */ + IMPORT_C void AngleResponse(TRequestStatus& aStatus, TInt aError); + + /** Send a 'subpicture' response. + Only one response per target session can be outstanding at any one time. + @param aStatus Used by RemCon to indicate completion of the send request. + @param aError The response error. + */ + IMPORT_C void SubpictureResponse(TRequestStatus& aStatus, TInt aError); + + /** Send a 'pause play function' response. + Only one response per target session can be outstanding at any one time. + @param aStatus Used by RemCon to indicate completion of the send request. + @param aError The response error. + */ + IMPORT_C void PausePlayFunctionResponse(TRequestStatus& aStatus, TInt aError); + + /** Send a 'restore volume function' response. + Only one response per target session can be outstanding at any one time. + @param aStatus Used by RemCon to indicate completion of the send request. + @param aError The response error. + */ + IMPORT_C void RestoreVolumeFunctionResponse(TRequestStatus& aStatus, TInt aError); + + /** Send a 'tune function' response. + Only one response per target session can be outstanding at any one time. + @param aStatus Used by RemCon to indicate completion of the send request. + @param aError The response error. + */ + IMPORT_C void TuneFunctionResponse(TRequestStatus& aStatus, TInt aError); + + /** Send a 'select disk function' response. + Only one response per target session can be outstanding at any one time. + @param aStatus Used by RemCon to indicate completion of the send request. + @param aError The response error. + */ + IMPORT_C void SelectDiskFunctionResponse(TRequestStatus& aStatus, TInt aError); + + /** Send a 'select AV input function' response. + Only one response per target session can be outstanding at any one time. + @param aStatus Used by RemCon to indicate completion of the send request. + @param aError The response error. + */ + IMPORT_C void SelectAvInputFunctionResponse(TRequestStatus& aStatus, TInt aError); + + /** Send a 'select audio input function' response. + Only one response per target session can be outstanding at any one time. + @param aStatus Used by RemCon to indicate completion of the send request. + @param aError The response error. + */ + IMPORT_C void SelectAudioInputFunctionResponse(TRequestStatus& aStatus, TInt aError); + + /** Send an 'F1' response. + Only one response per target session can be outstanding at any one time. + @param aStatus Used by RemCon to indicate completion of the send request. + @param aError The response error. + */ + IMPORT_C void F1Response(TRequestStatus& aStatus, TInt aError); + + /** Send an 'F2' response. + Only one response per target session can be outstanding at any one time. + @param aStatus Used by RemCon to indicate completion of the send request. + @param aError The response error. + */ + IMPORT_C void F2Response(TRequestStatus& aStatus, TInt aError); + + /** Send an 'F3' response. + Only one response per target session can be outstanding at any one time. + @param aStatus Used by RemCon to indicate completion of the send request. + @param aError The response error. + */ + IMPORT_C void F3Response(TRequestStatus& aStatus, TInt aError); + + /** Send an 'F4' response. + Only one response per target session can be outstanding at any one time. + @param aStatus Used by RemCon to indicate completion of the send request. + @param aError The response error. + */ + IMPORT_C void F4Response(TRequestStatus& aStatus, TInt aError); + + /** Send an 'F5' response. + Only one response per target session can be outstanding at any one time. + @param aStatus Used by RemCon to indicate completion of the send request. + @param aError The response error. + */ + IMPORT_C void F5Response(TRequestStatus& aStatus, TInt aError); + + /** Send a response. + Only one response per target session can be outstanding at any one time. + This function may be used to send a response when it is undesirable to use the + 'specific' response-sending methods (PlayResponse, StopResponse etc). + @param aStatus Used by RemCon to indicate completion of the send request. + @param aOperationId The operation ID of the command we are sending a response to. + @param aError The response error. + */ + IMPORT_C void SendResponse(TRequestStatus& aStatus, TRemConCoreApiOperationId aOperationId, TInt aError); + +private: + /** + Constructor. + @param aInterfaceSelector The interface selector. + @param aObserver The observer of this interface. + */ + CRemConCoreApiTarget(CRemConInterfaceSelector& aInterfaceSelector, + MRemConCoreApiTargetObserver& aObserver); + void ConstructL(const RArray& aFeaturesSupported); + +private: // utility + /** + Utility to send a response. + @param aStatus TRequestStatus for the send operation. + @param aOperationId The operation ID. + */ + void SendGenericResponse(TRequestStatus& aStatus, + TRemConCoreApiOperationId aOperationId, + TInt aError); + +private: // from CRemConInterfaceBase + TAny* GetInterfaceIf(TUid aUid); + +private: // from MRemConInterfaceIf + void MrcibNewMessage(TUint aOperationId, const TDesC8& aData); + +private: // utility + void HandlePlay(const TDesC8& aData, TRemConCoreApiButtonAction aButton); + void HandleTuneFunction(const TDesC8& aData, TRemConCoreApiButtonAction aButton); + void HandleSelectDiskFunction(const TDesC8& aData, TRemConCoreApiButtonAction aButton); + void HandleSelectAvInputFunction(const TDesC8& aData, TRemConCoreApiButtonAction aButton); + void HandleSelectAudioInputFunction(const TDesC8& aData, TRemConCoreApiButtonAction aButton); +private : + void RemConCoreSetFeatures(TBool* aFeatureSupported); + +private: // unowned + MRemConCoreApiTargetObserver& iObserver; + +private: // owned + TBuf8 iRspData; + TUint iNumRemotes; + TFixedArray iOutstandingOperations; + }; + +#endif // REMCONCOREAPITARGET_H