bluetoothappprofiles/avrcp/remconbeareravrcp/src/avrcpfragmenter.cpp
changeset 70 f5508c13dfe0
parent 67 16e4b9007960
child 71 083fd884d7dd
--- a/bluetoothappprofiles/avrcp/remconbeareravrcp/src/avrcpfragmenter.cpp	Wed Oct 13 13:15:31 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,128 +0,0 @@
-// 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:
-//
-
-
-
-/**
- @file
- @internalComponent
- @released
-*/
-
-#include "avrcpfragmenter.h"
-#include "controlcommand.h"
-#include <e32debug.h>
-
-// Maximum size of data in a fragment response
-static const int KFragmentDataLength = KAVCMaxVendorDependentPayload - KAVRCPMinVendorDependentResponseLen;
-
-
-CAVRCPFragmenter* CAVRCPFragmenter::NewL()
-	{
-	CAVRCPFragmenter* self = new (ELeave) CAVRCPFragmenter();
-	self->Construct();
-	return self;
-	}
-
-TBool CAVRCPFragmenter::InFragmentedState()
-	{
-	return iInFragmentedState;
-	}
-
-void CAVRCPFragmenter::Reset()
-	{
-	iStart = KAVRCPMinVendorDependentResponseLen;
-	iInFragmentedState = EFalse;
-	}
-
-void CAVRCPFragmenter::AssignPayload(const RBuf8& aPayload)
-	{
-	// Assign the allocated memory containing the reponse to
-	// this class, allowing the caller to Close() aPayload.
-	iPayload.Close();
-	iPayload.Assign(aPayload);
-	iInFragmentedState = ETrue;
-	}
-
-TPtr8 CAVRCPFragmenter::GetNextFragmentHeader()
-	{
-	if (! InFragmentedState())
-		return TPtr8(0,0,0);
-	
-	// Fragmentation byte is 2nd byte of response; poke this
-	// and set the length correctly
-	if (iStart == KAVRCPMinVendorDependentResponseLen)
-		{
-		iPayload[1] = EFragmentStart;
-		iPayload[2] = (KFragmentDataLength >> 8) & 0xff;
-		iPayload[3] = (KFragmentDataLength) & 0xff;
-		}
-	else if (LastFragment())
-		{
-		iPayload[1] = EFragmentEnd;
-		TInt length = iPayload.Length() - iStart;
-		iPayload[2] = (length >> 8) & 0xff;
-		iPayload[3] = (length) & 0xff;
-		}
-	else
-		{
-		iPayload[1] = EFragmentContinue;
-		iPayload[2] = (KFragmentDataLength >> 8) & 0xff;
-		iPayload[3] = (KFragmentDataLength) & 0xff;
-		}
-	
-	// Return the first 4 bytes, which contain the PDU id,
-	// fragmentation status and parameter length (2 bytes)
-	return iPayload.MidTPtr(0, KAVRCPMinVendorDependentResponseLen);
-	}
-
-TPtr8 CAVRCPFragmenter::GetNextFragment()
-	{
-	if (! InFragmentedState())
-		return TPtr8(0,0,0);
-	
-	// Sigh. MidTPtr() PANICs if the 2nd argument is too large.
-	// Other APIs (e.g. Java, STL) just return to end of string.
-	TInt fragmentSize = KFragmentDataLength;
-	if (LastFragment())
-		fragmentSize = iPayload.Length() - iStart;
-	
-	TPtr8 fragment = iPayload.MidTPtr(iStart, fragmentSize);
-	
-	if (LastFragment())
-		Reset();
-	else
-		iStart += fragmentSize;
-	return fragment;
-	}
-
-TBool CAVRCPFragmenter::LastFragment()
-	{
-	if (iStart + KFragmentDataLength > iPayload.Length())
-		return ETrue;
-	else
-		return EFalse;
-	}
-
-TInt CAVRCPFragmenter::GetPDU()
-	{
-	return iPayload[0];
-	}
-
-void CAVRCPFragmenter::Construct()
-	{
-	Reset();
-	}
-