williamr@2: // Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies). williamr@2: // All rights reserved. williamr@2: // This component and the accompanying materials are made available williamr@2: // under the terms of the License "Symbian Foundation License v1.0" to Symbian Foundation members and "Symbian Foundation End User License Agreement v1.0" to non-members williamr@2: // which accompanies this distribution, and is available williamr@2: // at the URL "http://www.symbianfoundation.org/legal/licencesv10.html". williamr@2: // williamr@2: // Initial Contributors: williamr@2: // Nokia Corporation - initial contribution. williamr@2: // williamr@2: // Contributors: williamr@2: // williamr@2: // Description: williamr@2: // williamr@2: williamr@2: williamr@2: williamr@2: /** williamr@2: @file williamr@2: @publishedAll williamr@2: @released williamr@2: */ williamr@2: williamr@2: #ifndef REMCONSTATUSAPICONTROLLER_H williamr@2: #define REMCONSTATUSAPICONTROLLER_H williamr@2: williamr@2: #include williamr@2: #include williamr@2: #include williamr@2: #include williamr@2: williamr@2: _LIT(KStatusApiPanicName, "Status Api Panic"); williamr@2: williamr@2: class MRemConStatusApiControllerObserver; williamr@2: class CRemConInterfaceSelector; williamr@2: williamr@2: /** williamr@2: A controller which sends Status API commands. williamr@2: @publishedAll williamr@2: @released williamr@2: */ williamr@2: NONSHARABLE_CLASS(CRemConStatusApiController) : public CRemConInterfaceBase, williamr@2: public MRemConInterfaceIf williamr@2: { williamr@2: private: williamr@2: enum TStatusApiPanic williamr@2: { williamr@2: EStatusApiCommandDataSectionTooLong, williamr@2: }; williamr@2: williamr@2: public: williamr@2: IMPORT_C static CRemConStatusApiController* NewL(CRemConInterfaceSelector& aInterfaceSelector, williamr@2: MRemConStatusApiControllerObserver& aObserver); williamr@2: IMPORT_C ~CRemConStatusApiController(); williamr@2: williamr@2: // Commands williamr@2: IMPORT_C void UnitInfo(TRequestStatus& aStatus, TUint& aNumRemotes); williamr@2: IMPORT_C void SubunitInfo(TRequestStatus& aStatus, TUint& aNumRemotes); williamr@2: williamr@2: private: williamr@2: CRemConStatusApiController(CRemConInterfaceSelector& aInterfaceSelector, williamr@2: MRemConStatusApiControllerObserver& aObserver); williamr@2: williamr@2: // from CRemConInterfaceBase williamr@2: void MrcibNewMessage(TUint aOperationId, const TDesC8& aData); williamr@2: TAny* GetInterfaceIf(TUid aUid); williamr@2: williamr@2: // Utility functions williamr@2: void SetUnitInfoResponseData(const TDesC8& aCommandData, williamr@2: TInt& aVendorId, williamr@2: TInt& aUnit, williamr@2: TInt& aUnitType, williamr@2: TInt& aExtendedUnitType); williamr@2: williamr@2: void SetSubunitInfoResponseData(const TDesC8& aCommandData, williamr@2: TInt& aPage, williamr@2: TInt& aExtension, williamr@2: TPtrC8& aPageData); williamr@2: williamr@2: void ReadCommandDataToInt(const TDesC8& aCommandData, williamr@2: TInt aOffset, williamr@2: TInt aLength, williamr@2: TInt& aValue); williamr@2: williamr@2: static void Panic(TStatusApiPanic aPanic); williamr@2: williamr@2: private: williamr@2: MRemConStatusApiControllerObserver& iObserver; williamr@2: TBuf8 iOutData; williamr@2: }; williamr@2: williamr@2: #endif // REMCONSTATUSAPICONTROLLER_H