diff -r 000000000000 -r f63038272f30 bluetoothappprofiles/avrcp/common/avrcpipc.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/bluetoothappprofiles/avrcp/common/avrcpipc.h Mon Jan 18 20:28:57 2010 +0200 @@ -0,0 +1,74 @@ +// Copyright (c) 2007-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: +// This file contains structures shared by the AVRCP API with the AVRCP bearer. +// +// + +/** + @file + @internalTechnology + @released +*/ + +#ifndef AVRCPIPC_H +#define AVRCPIPC_H + +#include +#include + +// Structure of commands for AVRCP player information requests via IPC +class RAvrcpIPC +{ +public: + IMPORT_C static TMetadataTransferPDU GetPDUIdFromIPCOperationId(TInt aOperationId); + IMPORT_C static TRegisterNotificationEvent GetEventIdFromIPCOperationId(TInt aOperationId); + IMPORT_C static TInt SetIPCOperationIdFromEventId(TRegisterNotificationEvent aEventId); + IMPORT_C static TUint8 SymbianErrToStatus(TInt aErr); + IMPORT_C static TInt SymbianErrorCheck(TInt aError); + +public: + virtual void ReadL(const TDesC8& aData) = 0; + virtual void WriteL(TDes8& aOutData) = 0; + +protected: + // Big-endian methods; Symbian native methods are little-endian + TUint8 Read8L(); + TUint16 Read16L(); + TUint32 Read32L(); + TUint32 Read24L(); // Required for PDU 0x10 + TUint64 Read64L(); + void Write8L(TUint8 aVal); + void Write16L(TUint16 aVal); + void Write24L(TUint32 aVal); // Required for PDU 0x10 + void Write32L(TUint32 aVal); + void Write64L(TUint64 aVal); + void Close(); + +public: + RDesWriteStream iStream; + RDesReadStream iReadStream; +}; + +const TUint8 KLengthErrorResponse = 4; // 4 bytes for errors returned via IPC +class RAvrcpIPCError : public RAvrcpIPC +{ +public: + IMPORT_C void ReadL(const TDesC8& aData); + IMPORT_C void WriteL(TDes8& aOutData); + +public: + TInt iError; +}; + +#endif // AVRCPIPC_H