bluetoothappprofiles/avrcp/common/avrcpipc.h
changeset 0 f63038272f30
--- /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 <s32mem.h>
+#include <remcon/avrcpspec.h>
+
+// 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