bluetoothappprofiles/avrcp/remconbeareravrcp/inc/playerbitmasks.h
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Mon, 21 Jun 2010 15:51:46 +0300
branchRCL_3
changeset 18 5a89845f78e2
parent 14 2f88a7d66f50
permissions -rw-r--r--
Revision: 201023 Kit: 2010125

// Copyright (c) 2008-2010 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:
// TPlayerFeatureBitmask.h
//

#ifndef PLAYERBITMASKS_H_
#define PLAYERBITMASKS_H_

/**
@file
@internalComponent
@released
*/
#include <e32base.h>

const TInt KFeatureBitmaskLength = 16;

enum TByteOffsets
	{
	ESelectByteOffset = 0,
	EUpByteOffset = 0,
	EDownByteOffset = 0,
	ELeftByteOffset = 0,
	ERightByteOffset = 0,
	ERightUpByteOffset = 0,
	ERightDownByteOffset = 0,
	ELeftUpByteOffset = 0,
	ELeftDownByteOffset = 1,
	ERootMenuByteOffset = 1,
	ESetupMenuByteOffset = 1,
	EContentsMenuByteOffset = 1,
	EFavoriteMenuByteOffset = 1,
	EExitByteOffset = 1,
	E0ByteOffset = 1,
	E1ByteOffset = 1,
	E2ByteOffset = 2,
	E3ByteOffset = 2,
	E4ByteOffset = 2,
	E5ByteOffset = 2,
	E6ByteOffset = 2,
	E7ByteOffset = 2,
	E8ByteOffset = 2,
	E9ByteOffset = 2,
	EDotByteOffset = 3,
	EEnterByteOffset = 3,
	EClearByteOffset = 3,
	EChannelUpByteOffset = 3,
	EChannelDownByteOffset = 3,
	EPreviousChannelByteOffset = 3,
	ESoundSelectByteOffset = 3,
	EInputSelectByteOffset = 3,
	EDisplayInformationByteOffset = 4,
	EHelpByteOffset = 4,
	EPageUpByteOffset = 4,
	EPageDownByteOffset = 4,
	EPowerByteOffset = 4,
	EVolumeUpByteOffset = 4,
	EVolumeDownByteOffset = 4,
	EMuteByteOffset = 4,
	EPlayByteOffset = 5,
	EStopByteOffset = 5,
	EPauseByteOffset = 5,
	ERecordByteOffset = 5,
	ERewindByteOffset = 5,
	EFastForwardByteOffset = 5,
	EEjectByteOffset = 5,
	EForwardByteOffset = 5,
	EBackwardByteOffset = 6,
	EAngleByteOffset = 6,
	ESubpictureByteOffset = 6,
	EF1ByteOffset = 6,
	EF2ByteOffset = 6,
	EF3ByteOffset = 6,
	EF4ByteOffset = 6,
	EF5ByteOffset = 6,
	EVendorUniqueByteOffset = 7,
	EGroupNavigationByteOffset = 7,
	EAdvancedControlPlayerByteOffset = 7,
	EBrowsingByteOffset = 7,
	ESearchByteOffset = 7,
	EAddToNowPlayingByteOffset = 7,
	EDatabaseAwareByteOffset = 7,
	EBrowsableOnlyWhenAddressedByteOffset = 7,
	ESearchableOnlyWhenAddressedByteOffset = 8,
	ENowPlayingByteOffset = 8,
	EUidPersistencyByteOffset = 8,
	};

enum TBitOffset
	{
	ESelectBitOffset = 0,
	EUpBitOffset = 1,
	EDownBitOffset = 2,
	ELeftBitOffset = 3,
	ERightBitOffset = 4,
	ERightUpBitOffset = 5,
	ERightDownBitOffset = 6,
	ELeftUpBitOffset = 7,
	ELeftDownBitOffset = 0,
	ERootMenuBitOffset = 1,
	ESetupMenuBitOffset = 2,
	EContentsMenuBitOffset = 3,
	EFavoriteMenuBitOffset = 4,
	EExitBitOffset = 5,
	E0BitOffset = 6,
	E1BitOffset = 7,
	E2BitOffset = 0,
	E3BitOffset = 1,
	E4BitOffset = 2,
	E5BitOffset = 3,
	E6BitOffset = 4,
	E7BitOffset = 5,
	E8BitOffset = 6,
	E9BitOffset = 7,
	EDotBitOffset = 0,
	EEnterBitOffset = 1,
	EClearBitOffset = 2,
	EChannelUpBitOffset = 3,
	EChannelDownBitOffset = 4,
	EPreviousChannelBitOffset = 5,
	ESoundSelectBitOffset = 6,
	EInputSelectBitOffset = 7,
	EDisplayInformationBitOffset = 0,
	EHelpBitOffset = 1,
	EPageUpBitOffset = 2,
	EPageDownBitOffset = 3,
	EPowerBitOffset = 4,
	EVolumeUpBitOffset = 5,
	EVolumeDownBitOffset = 6,
	EMuteBitOffset = 7,
	EPlayBitOffset = 0,
	EStopBitOffset = 1,
	EPauseBitOffset = 2,
	ERecordBitOffset = 3,
	ERewindBitOffset = 4,
	EFastForwardBitOffset = 5,
	EEjectBitOffset = 6,
	EForwardBitOffset = 7,
	EBackwardBitOffset = 0,
	EAngleBitOffset = 1,
	ESubpictureBitOffset = 2,
	EF1BitOffset = 3,
	EF2BitOffset = 4,
	EF3BitOffset = 5,
	EF4BitOffset = 6,
	EF5BitOffset = 7,
	EVendorUniqueBitOffset = 0,
	EGroupNavigationBitOffset = 1,
	EAdvancedControlPlayerBitOffset = 2,
	EBrowsingBitOffset = 3,
	ESearchBitOffset = 4,
	EAddToNowPlayingBitOffset = 5,
	EDatabaseAwareBitOffset = 6,
	EBrowsableOnlyWhenAddressedBitOffset = 7,
	ESearchableOnlyWhenAddressedBitOffset = 0,
	ENowPlayingBitOffset = 1,
	EUidPersistencyBitOffset = 2,
	};

class TPlayerFeatureBitmask
	{
public:
	TPlayerFeatureBitmask();
	TPlayerFeatureBitmask(const TPlayerFeatureBitmask& aFeatureBitmask);
	
	inline const TDesC8& FeatureBitmask() const;

	void SetCoreApiFeatures(const RArray<TUint>& aOperation);
	void SetAbsoluteVolumeApiFeatures(const RArray<TUint>& aOperation);
	void SetGroupNavigationApiFeatures(const RArray<TUint>& aOperation);
	void SetNowPlayingApiFeatures(const RArray<TUint>& aOperation);
	void SetMediaBrowseApiFeatures(const RArray<TUint>& aOperation);

private:
	void SetCoreApiFeatures();

private:
	TBuf8<KFeatureBitmaskLength> iFeatureBitmask;
	};

const TDesC8& TPlayerFeatureBitmask::FeatureBitmask() const
	{
	return iFeatureBitmask;
	}
#endif /*PLAYERBITMASKS_H_*/