remotecontrol/avrcp/remconbeareravrcp/src/playerbitmasks.cpp
author hgs
Wed, 13 Oct 2010 16:20:29 +0300
changeset 51 20ac952a623c
permissions -rw-r--r--
201040_02
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
51
20ac952a623c 201040_02
hgs
parents:
diff changeset
     1
// Copyright (c) 2008-2010 Nokia Corporation and/or its subsidiary(-ies).
20ac952a623c 201040_02
hgs
parents:
diff changeset
     2
// All rights reserved.
20ac952a623c 201040_02
hgs
parents:
diff changeset
     3
// This component and the accompanying materials are made available
20ac952a623c 201040_02
hgs
parents:
diff changeset
     4
// under the terms of "Eclipse Public License v1.0"
20ac952a623c 201040_02
hgs
parents:
diff changeset
     5
// which accompanies this distribution, and is available
20ac952a623c 201040_02
hgs
parents:
diff changeset
     6
// at the URL "http://www.eclipse.org/legal/epl-v10.html".
20ac952a623c 201040_02
hgs
parents:
diff changeset
     7
//
20ac952a623c 201040_02
hgs
parents:
diff changeset
     8
// Initial Contributors:
20ac952a623c 201040_02
hgs
parents:
diff changeset
     9
// Nokia Corporation - initial contribution.
20ac952a623c 201040_02
hgs
parents:
diff changeset
    10
//
20ac952a623c 201040_02
hgs
parents:
diff changeset
    11
// Contributors:
20ac952a623c 201040_02
hgs
parents:
diff changeset
    12
//
20ac952a623c 201040_02
hgs
parents:
diff changeset
    13
// Description:
20ac952a623c 201040_02
hgs
parents:
diff changeset
    14
// TPlayerFeatureBitmask.cpp
20ac952a623c 201040_02
hgs
parents:
diff changeset
    15
//
20ac952a623c 201040_02
hgs
parents:
diff changeset
    16
20ac952a623c 201040_02
hgs
parents:
diff changeset
    17
#include <remconcoreapi.h>
20ac952a623c 201040_02
hgs
parents:
diff changeset
    18
#include "avrcplog.h"
20ac952a623c 201040_02
hgs
parents:
diff changeset
    19
#include "avrcputils.h"
20ac952a623c 201040_02
hgs
parents:
diff changeset
    20
#include "mediabrowse.h"
20ac952a623c 201040_02
hgs
parents:
diff changeset
    21
#include "nowplaying.h"
20ac952a623c 201040_02
hgs
parents:
diff changeset
    22
#include "playerbitmasks.h"
20ac952a623c 201040_02
hgs
parents:
diff changeset
    23
#include "remcongroupnavigation.h"
20ac952a623c 201040_02
hgs
parents:
diff changeset
    24
20ac952a623c 201040_02
hgs
parents:
diff changeset
    25
20ac952a623c 201040_02
hgs
parents:
diff changeset
    26
TPlayerFeatureBitmask::TPlayerFeatureBitmask()
20ac952a623c 201040_02
hgs
parents:
diff changeset
    27
	{
20ac952a623c 201040_02
hgs
parents:
diff changeset
    28
	iFeatureBitmask.FillZ(KFeatureBitmaskLength);
20ac952a623c 201040_02
hgs
parents:
diff changeset
    29
	}
20ac952a623c 201040_02
hgs
parents:
diff changeset
    30
20ac952a623c 201040_02
hgs
parents:
diff changeset
    31
TPlayerFeatureBitmask::TPlayerFeatureBitmask(const TPlayerFeatureBitmask& aFeatureBitmask)
20ac952a623c 201040_02
hgs
parents:
diff changeset
    32
	{
20ac952a623c 201040_02
hgs
parents:
diff changeset
    33
	iFeatureBitmask.Copy(aFeatureBitmask.FeatureBitmask());
20ac952a623c 201040_02
hgs
parents:
diff changeset
    34
	}
20ac952a623c 201040_02
hgs
parents:
diff changeset
    35
20ac952a623c 201040_02
hgs
parents:
diff changeset
    36
void TPlayerFeatureBitmask::SetCoreApiFeatures(const RArray<TUint>& aOperation)
20ac952a623c 201040_02
hgs
parents:
diff changeset
    37
	{
20ac952a623c 201040_02
hgs
parents:
diff changeset
    38
	if(aOperation.Count() > 0)
20ac952a623c 201040_02
hgs
parents:
diff changeset
    39
		{
20ac952a623c 201040_02
hgs
parents:
diff changeset
    40
		for(TInt j = 0; j< aOperation.Count() ; j++)
20ac952a623c 201040_02
hgs
parents:
diff changeset
    41
			{
20ac952a623c 201040_02
hgs
parents:
diff changeset
    42
			switch(aOperation[j])
20ac952a623c 201040_02
hgs
parents:
diff changeset
    43
				{
20ac952a623c 201040_02
hgs
parents:
diff changeset
    44
			case ERemConCoreApiSelect:
20ac952a623c 201040_02
hgs
parents:
diff changeset
    45
				iFeatureBitmask[ESelectByteOffset] |= (1<<ESelectBitOffset);
20ac952a623c 201040_02
hgs
parents:
diff changeset
    46
				break;
20ac952a623c 201040_02
hgs
parents:
diff changeset
    47
			case ERemConCoreApiUp:
20ac952a623c 201040_02
hgs
parents:
diff changeset
    48
				iFeatureBitmask[EUpByteOffset]|= (1<<EUpBitOffset);
20ac952a623c 201040_02
hgs
parents:
diff changeset
    49
				break;
20ac952a623c 201040_02
hgs
parents:
diff changeset
    50
			case ERemConCoreApiDown:
20ac952a623c 201040_02
hgs
parents:
diff changeset
    51
				iFeatureBitmask[EDownByteOffset]|= (1<<EDownBitOffset);
20ac952a623c 201040_02
hgs
parents:
diff changeset
    52
				break;
20ac952a623c 201040_02
hgs
parents:
diff changeset
    53
			case ERemConCoreApiLeft:
20ac952a623c 201040_02
hgs
parents:
diff changeset
    54
				iFeatureBitmask[ELeftByteOffset]|= (1<<ELeftBitOffset);
20ac952a623c 201040_02
hgs
parents:
diff changeset
    55
				break;
20ac952a623c 201040_02
hgs
parents:
diff changeset
    56
			case ERemConCoreApiRight:
20ac952a623c 201040_02
hgs
parents:
diff changeset
    57
				iFeatureBitmask[ERightByteOffset]|= (1<<ERightBitOffset);
20ac952a623c 201040_02
hgs
parents:
diff changeset
    58
				break;
20ac952a623c 201040_02
hgs
parents:
diff changeset
    59
			case ERemConCoreApiRightUp:
20ac952a623c 201040_02
hgs
parents:
diff changeset
    60
				iFeatureBitmask[ERightUpByteOffset]|= (1<<ERightUpBitOffset);
20ac952a623c 201040_02
hgs
parents:
diff changeset
    61
				break;
20ac952a623c 201040_02
hgs
parents:
diff changeset
    62
			case ERemConCoreApiRightDown:
20ac952a623c 201040_02
hgs
parents:
diff changeset
    63
				iFeatureBitmask[ERightDownByteOffset]|= (1<<ERightDownBitOffset);
20ac952a623c 201040_02
hgs
parents:
diff changeset
    64
				break;
20ac952a623c 201040_02
hgs
parents:
diff changeset
    65
			case ERemConCoreApiLeftUp:
20ac952a623c 201040_02
hgs
parents:
diff changeset
    66
				iFeatureBitmask[ELeftUpByteOffset]|= (1<<ELeftUpBitOffset);
20ac952a623c 201040_02
hgs
parents:
diff changeset
    67
				break;
20ac952a623c 201040_02
hgs
parents:
diff changeset
    68
			case ERemConCoreApiLeftDown:
20ac952a623c 201040_02
hgs
parents:
diff changeset
    69
				iFeatureBitmask[ELeftDownByteOffset]|= (1<<ELeftDownBitOffset);
20ac952a623c 201040_02
hgs
parents:
diff changeset
    70
				break;
20ac952a623c 201040_02
hgs
parents:
diff changeset
    71
			case ERemConCoreApiRootMenu:
20ac952a623c 201040_02
hgs
parents:
diff changeset
    72
				iFeatureBitmask[ERootMenuByteOffset]|= (1<<ERootMenuBitOffset);
20ac952a623c 201040_02
hgs
parents:
diff changeset
    73
				break;
20ac952a623c 201040_02
hgs
parents:
diff changeset
    74
			case ERemConCoreApiSetupMenu:
20ac952a623c 201040_02
hgs
parents:
diff changeset
    75
				iFeatureBitmask[ESetupMenuByteOffset]|= (1<<ESetupMenuBitOffset);
20ac952a623c 201040_02
hgs
parents:
diff changeset
    76
				break;
20ac952a623c 201040_02
hgs
parents:
diff changeset
    77
			case ERemConCoreApiContentsMenu:
20ac952a623c 201040_02
hgs
parents:
diff changeset
    78
				iFeatureBitmask[EContentsMenuByteOffset]|= (1<<EContentsMenuBitOffset);
20ac952a623c 201040_02
hgs
parents:
diff changeset
    79
				break;
20ac952a623c 201040_02
hgs
parents:
diff changeset
    80
			case ERemConCoreApiFavoriteMenu:
20ac952a623c 201040_02
hgs
parents:
diff changeset
    81
				iFeatureBitmask[EFavoriteMenuByteOffset]|= (1<<EFavoriteMenuBitOffset);
20ac952a623c 201040_02
hgs
parents:
diff changeset
    82
				break;
20ac952a623c 201040_02
hgs
parents:
diff changeset
    83
			case ERemConCoreApiExit:
20ac952a623c 201040_02
hgs
parents:
diff changeset
    84
				iFeatureBitmask[EExitByteOffset]|= (1<<EExitBitOffset);
20ac952a623c 201040_02
hgs
parents:
diff changeset
    85
				break;
20ac952a623c 201040_02
hgs
parents:
diff changeset
    86
			case ERemConCoreApi0:
20ac952a623c 201040_02
hgs
parents:
diff changeset
    87
				iFeatureBitmask[E0ByteOffset]|= (1<<E0BitOffset);
20ac952a623c 201040_02
hgs
parents:
diff changeset
    88
				break;
20ac952a623c 201040_02
hgs
parents:
diff changeset
    89
			case ERemConCoreApi1:
20ac952a623c 201040_02
hgs
parents:
diff changeset
    90
				iFeatureBitmask[E1ByteOffset]|= (1<<E1BitOffset);
20ac952a623c 201040_02
hgs
parents:
diff changeset
    91
				break;
20ac952a623c 201040_02
hgs
parents:
diff changeset
    92
			case ERemConCoreApi2:
20ac952a623c 201040_02
hgs
parents:
diff changeset
    93
				iFeatureBitmask[E2ByteOffset]|= (1<<E2BitOffset);
20ac952a623c 201040_02
hgs
parents:
diff changeset
    94
				break;
20ac952a623c 201040_02
hgs
parents:
diff changeset
    95
			case ERemConCoreApi3:
20ac952a623c 201040_02
hgs
parents:
diff changeset
    96
				iFeatureBitmask[E3ByteOffset]|= (1<<E3BitOffset);
20ac952a623c 201040_02
hgs
parents:
diff changeset
    97
				break;
20ac952a623c 201040_02
hgs
parents:
diff changeset
    98
			case ERemConCoreApi4:
20ac952a623c 201040_02
hgs
parents:
diff changeset
    99
				iFeatureBitmask[E4ByteOffset]|= (1<<E4BitOffset);
20ac952a623c 201040_02
hgs
parents:
diff changeset
   100
				break;
20ac952a623c 201040_02
hgs
parents:
diff changeset
   101
			case ERemConCoreApi5:
20ac952a623c 201040_02
hgs
parents:
diff changeset
   102
				iFeatureBitmask[E5ByteOffset]|= (1<<E5BitOffset);
20ac952a623c 201040_02
hgs
parents:
diff changeset
   103
				break;
20ac952a623c 201040_02
hgs
parents:
diff changeset
   104
			case ERemConCoreApi6:
20ac952a623c 201040_02
hgs
parents:
diff changeset
   105
				iFeatureBitmask[E6ByteOffset]|= (1<<E6BitOffset);
20ac952a623c 201040_02
hgs
parents:
diff changeset
   106
				break;
20ac952a623c 201040_02
hgs
parents:
diff changeset
   107
			case ERemConCoreApi7:
20ac952a623c 201040_02
hgs
parents:
diff changeset
   108
				iFeatureBitmask[E7ByteOffset]|= (1<<E7BitOffset);
20ac952a623c 201040_02
hgs
parents:
diff changeset
   109
				break;
20ac952a623c 201040_02
hgs
parents:
diff changeset
   110
			case ERemConCoreApi8:
20ac952a623c 201040_02
hgs
parents:
diff changeset
   111
				iFeatureBitmask[E8ByteOffset]|= (1<<E8BitOffset);
20ac952a623c 201040_02
hgs
parents:
diff changeset
   112
				break;	
20ac952a623c 201040_02
hgs
parents:
diff changeset
   113
			case ERemConCoreApi9:
20ac952a623c 201040_02
hgs
parents:
diff changeset
   114
				iFeatureBitmask[E9ByteOffset]|= (1<<E9BitOffset);
20ac952a623c 201040_02
hgs
parents:
diff changeset
   115
				break;
20ac952a623c 201040_02
hgs
parents:
diff changeset
   116
			case ERemConCoreApiDot:
20ac952a623c 201040_02
hgs
parents:
diff changeset
   117
				iFeatureBitmask[EDotByteOffset]|= (1<<EDotBitOffset);
20ac952a623c 201040_02
hgs
parents:
diff changeset
   118
				break;
20ac952a623c 201040_02
hgs
parents:
diff changeset
   119
			case ERemConCoreApiEnter:
20ac952a623c 201040_02
hgs
parents:
diff changeset
   120
				iFeatureBitmask[EEnterByteOffset]|= (1<<EEnterBitOffset);
20ac952a623c 201040_02
hgs
parents:
diff changeset
   121
				break;
20ac952a623c 201040_02
hgs
parents:
diff changeset
   122
			case ERemConCoreApiClear:
20ac952a623c 201040_02
hgs
parents:
diff changeset
   123
				iFeatureBitmask[EClearByteOffset]|= (1<<EClearBitOffset);
20ac952a623c 201040_02
hgs
parents:
diff changeset
   124
				break;
20ac952a623c 201040_02
hgs
parents:
diff changeset
   125
			case ERemConCoreApiChannelUp:
20ac952a623c 201040_02
hgs
parents:
diff changeset
   126
				iFeatureBitmask[EChannelUpByteOffset]|= (1<<EChannelUpBitOffset);
20ac952a623c 201040_02
hgs
parents:
diff changeset
   127
				break;
20ac952a623c 201040_02
hgs
parents:
diff changeset
   128
			case ERemConCoreApiChannelDown:
20ac952a623c 201040_02
hgs
parents:
diff changeset
   129
				iFeatureBitmask[EChannelDownByteOffset]|= (1<<EChannelDownBitOffset);
20ac952a623c 201040_02
hgs
parents:
diff changeset
   130
				break;
20ac952a623c 201040_02
hgs
parents:
diff changeset
   131
			case ERemConCoreApiPreviousChannel:
20ac952a623c 201040_02
hgs
parents:
diff changeset
   132
				iFeatureBitmask[EPreviousChannelByteOffset]|= (1<<EPreviousChannelBitOffset);
20ac952a623c 201040_02
hgs
parents:
diff changeset
   133
				break;
20ac952a623c 201040_02
hgs
parents:
diff changeset
   134
			case ERemConCoreApiSoundSelect:
20ac952a623c 201040_02
hgs
parents:
diff changeset
   135
				iFeatureBitmask[ESoundSelectByteOffset]|= (1<<ESoundSelectBitOffset);
20ac952a623c 201040_02
hgs
parents:
diff changeset
   136
				break;
20ac952a623c 201040_02
hgs
parents:
diff changeset
   137
			case ERemConCoreApiInputSelect:
20ac952a623c 201040_02
hgs
parents:
diff changeset
   138
				iFeatureBitmask[EInputSelectByteOffset]|= (1<<EInputSelectBitOffset);
20ac952a623c 201040_02
hgs
parents:
diff changeset
   139
				break;
20ac952a623c 201040_02
hgs
parents:
diff changeset
   140
			case ERemConCoreApiDisplayInformation:
20ac952a623c 201040_02
hgs
parents:
diff changeset
   141
				iFeatureBitmask[EDisplayInformationByteOffset]|= (1<<EDisplayInformationBitOffset);
20ac952a623c 201040_02
hgs
parents:
diff changeset
   142
				break;
20ac952a623c 201040_02
hgs
parents:
diff changeset
   143
			case ERemConCoreApiHelp:
20ac952a623c 201040_02
hgs
parents:
diff changeset
   144
				iFeatureBitmask[EHelpByteOffset]|= (1<<EHelpBitOffset);
20ac952a623c 201040_02
hgs
parents:
diff changeset
   145
				break;
20ac952a623c 201040_02
hgs
parents:
diff changeset
   146
			case ERemConCoreApiPageUp:
20ac952a623c 201040_02
hgs
parents:
diff changeset
   147
				iFeatureBitmask[EPageUpByteOffset]|= (1<<EPageUpBitOffset);
20ac952a623c 201040_02
hgs
parents:
diff changeset
   148
				break;
20ac952a623c 201040_02
hgs
parents:
diff changeset
   149
			case ERemConCoreApiPageDown:
20ac952a623c 201040_02
hgs
parents:
diff changeset
   150
				iFeatureBitmask[EPageDownByteOffset]|= (1<<EPageDownBitOffset);
20ac952a623c 201040_02
hgs
parents:
diff changeset
   151
				break;
20ac952a623c 201040_02
hgs
parents:
diff changeset
   152
			case ERemConCoreApiPower:
20ac952a623c 201040_02
hgs
parents:
diff changeset
   153
				iFeatureBitmask[EPowerByteOffset]|= (1<<EPowerBitOffset);
20ac952a623c 201040_02
hgs
parents:
diff changeset
   154
				break;
20ac952a623c 201040_02
hgs
parents:
diff changeset
   155
			case ERemConCoreApiVolumeUp:
20ac952a623c 201040_02
hgs
parents:
diff changeset
   156
				iFeatureBitmask[EVolumeUpByteOffset]|= (1<<EVolumeUpBitOffset);
20ac952a623c 201040_02
hgs
parents:
diff changeset
   157
				break;
20ac952a623c 201040_02
hgs
parents:
diff changeset
   158
			case ERemConCoreApiVolumeDown:
20ac952a623c 201040_02
hgs
parents:
diff changeset
   159
				iFeatureBitmask[EVolumeDownByteOffset]|= (1<<EVolumeDownBitOffset);
20ac952a623c 201040_02
hgs
parents:
diff changeset
   160
				break;
20ac952a623c 201040_02
hgs
parents:
diff changeset
   161
			case ERemConCoreApiMute:
20ac952a623c 201040_02
hgs
parents:
diff changeset
   162
				iFeatureBitmask[EMuteByteOffset]|= (1<<EMuteBitOffset);
20ac952a623c 201040_02
hgs
parents:
diff changeset
   163
				break;
20ac952a623c 201040_02
hgs
parents:
diff changeset
   164
			case ERemConCoreApiPlay:
20ac952a623c 201040_02
hgs
parents:
diff changeset
   165
				iFeatureBitmask[EPlayByteOffset]|= (1<<EPlayBitOffset);
20ac952a623c 201040_02
hgs
parents:
diff changeset
   166
				break;
20ac952a623c 201040_02
hgs
parents:
diff changeset
   167
			case ERemConCoreApiStop:
20ac952a623c 201040_02
hgs
parents:
diff changeset
   168
				iFeatureBitmask[EStopByteOffset]|= (1<<EStopBitOffset);
20ac952a623c 201040_02
hgs
parents:
diff changeset
   169
				break;
20ac952a623c 201040_02
hgs
parents:
diff changeset
   170
			case ERemConCoreApiPause:
20ac952a623c 201040_02
hgs
parents:
diff changeset
   171
				iFeatureBitmask[EPauseByteOffset]|= (1<<EPauseBitOffset);
20ac952a623c 201040_02
hgs
parents:
diff changeset
   172
				break;
20ac952a623c 201040_02
hgs
parents:
diff changeset
   173
			case ERemConCoreApiRecord:
20ac952a623c 201040_02
hgs
parents:
diff changeset
   174
				iFeatureBitmask[ERecordByteOffset]|= (1<<ERecordBitOffset);
20ac952a623c 201040_02
hgs
parents:
diff changeset
   175
				break;
20ac952a623c 201040_02
hgs
parents:
diff changeset
   176
			case ERemConCoreApiRewind:
20ac952a623c 201040_02
hgs
parents:
diff changeset
   177
				iFeatureBitmask[ERewindByteOffset]|= (1<<ERewindBitOffset);
20ac952a623c 201040_02
hgs
parents:
diff changeset
   178
				break;
20ac952a623c 201040_02
hgs
parents:
diff changeset
   179
			case ERemConCoreApiFastForward:
20ac952a623c 201040_02
hgs
parents:
diff changeset
   180
				iFeatureBitmask[EFastForwardByteOffset]|= (1<<EFastForwardBitOffset);
20ac952a623c 201040_02
hgs
parents:
diff changeset
   181
				break;
20ac952a623c 201040_02
hgs
parents:
diff changeset
   182
			case ERemConCoreApiEject:
20ac952a623c 201040_02
hgs
parents:
diff changeset
   183
				iFeatureBitmask[EEjectByteOffset]|= (1<<EEjectBitOffset);
20ac952a623c 201040_02
hgs
parents:
diff changeset
   184
				break;
20ac952a623c 201040_02
hgs
parents:
diff changeset
   185
			case ERemConCoreApiForward:
20ac952a623c 201040_02
hgs
parents:
diff changeset
   186
				iFeatureBitmask[EForwardByteOffset]|= (1<<EForwardBitOffset);
20ac952a623c 201040_02
hgs
parents:
diff changeset
   187
				break;
20ac952a623c 201040_02
hgs
parents:
diff changeset
   188
			case ERemConCoreApiBackward:
20ac952a623c 201040_02
hgs
parents:
diff changeset
   189
				iFeatureBitmask[EBackwardByteOffset]|= (1<<EBackwardBitOffset);
20ac952a623c 201040_02
hgs
parents:
diff changeset
   190
				break;
20ac952a623c 201040_02
hgs
parents:
diff changeset
   191
			case ERemConCoreApiAngle:
20ac952a623c 201040_02
hgs
parents:
diff changeset
   192
				iFeatureBitmask[EAngleByteOffset]|= (1<<EAngleBitOffset);
20ac952a623c 201040_02
hgs
parents:
diff changeset
   193
				break;
20ac952a623c 201040_02
hgs
parents:
diff changeset
   194
			case ERemConCoreApiSubpicture:
20ac952a623c 201040_02
hgs
parents:
diff changeset
   195
				iFeatureBitmask[ESubpictureByteOffset]|= (1<<ESubpictureBitOffset);
20ac952a623c 201040_02
hgs
parents:
diff changeset
   196
				break;
20ac952a623c 201040_02
hgs
parents:
diff changeset
   197
			case ERemConCoreApiF1:
20ac952a623c 201040_02
hgs
parents:
diff changeset
   198
				iFeatureBitmask[EF1ByteOffset]|= (1<<EF1BitOffset);
20ac952a623c 201040_02
hgs
parents:
diff changeset
   199
				break;
20ac952a623c 201040_02
hgs
parents:
diff changeset
   200
			case ERemConCoreApiF2:
20ac952a623c 201040_02
hgs
parents:
diff changeset
   201
				iFeatureBitmask[EF2ByteOffset]|= (1<<EF2BitOffset);
20ac952a623c 201040_02
hgs
parents:
diff changeset
   202
				break;
20ac952a623c 201040_02
hgs
parents:
diff changeset
   203
			case ERemConCoreApiF3:
20ac952a623c 201040_02
hgs
parents:
diff changeset
   204
				iFeatureBitmask[EF3ByteOffset]|= (1<<EF3BitOffset);
20ac952a623c 201040_02
hgs
parents:
diff changeset
   205
				break;
20ac952a623c 201040_02
hgs
parents:
diff changeset
   206
			case ERemConCoreApiF4:
20ac952a623c 201040_02
hgs
parents:
diff changeset
   207
				iFeatureBitmask[EF4ByteOffset]|= (1<<EF4BitOffset);
20ac952a623c 201040_02
hgs
parents:
diff changeset
   208
				break;
20ac952a623c 201040_02
hgs
parents:
diff changeset
   209
			case ERemConCoreApiF5:
20ac952a623c 201040_02
hgs
parents:
diff changeset
   210
				iFeatureBitmask[EF5ByteOffset]|= (1<<EF5BitOffset);
20ac952a623c 201040_02
hgs
parents:
diff changeset
   211
				break;
20ac952a623c 201040_02
hgs
parents:
diff changeset
   212
			default:
20ac952a623c 201040_02
hgs
parents:
diff changeset
   213
				// Ignore operations that aren't recorded in feature bitmask
20ac952a623c 201040_02
hgs
parents:
diff changeset
   214
				break;
20ac952a623c 201040_02
hgs
parents:
diff changeset
   215
				}
20ac952a623c 201040_02
hgs
parents:
diff changeset
   216
			}
20ac952a623c 201040_02
hgs
parents:
diff changeset
   217
		}
20ac952a623c 201040_02
hgs
parents:
diff changeset
   218
	else
20ac952a623c 201040_02
hgs
parents:
diff changeset
   219
		{
20ac952a623c 201040_02
hgs
parents:
diff changeset
   220
		// Don't know specific info, set all operations
20ac952a623c 201040_02
hgs
parents:
diff changeset
   221
		SetCoreApiFeatures();
20ac952a623c 201040_02
hgs
parents:
diff changeset
   222
		}
20ac952a623c 201040_02
hgs
parents:
diff changeset
   223
	}
20ac952a623c 201040_02
hgs
parents:
diff changeset
   224
20ac952a623c 201040_02
hgs
parents:
diff changeset
   225
void TPlayerFeatureBitmask::SetCoreApiFeatures()
20ac952a623c 201040_02
hgs
parents:
diff changeset
   226
	{
20ac952a623c 201040_02
hgs
parents:
diff changeset
   227
	iFeatureBitmask[ESelectByteOffset] |= (1<<ESelectBitOffset);
20ac952a623c 201040_02
hgs
parents:
diff changeset
   228
	iFeatureBitmask[EUpByteOffset]|= (1<<EUpBitOffset);
20ac952a623c 201040_02
hgs
parents:
diff changeset
   229
	iFeatureBitmask[EDownByteOffset]|= (1<<EDownBitOffset);
20ac952a623c 201040_02
hgs
parents:
diff changeset
   230
	iFeatureBitmask[ELeftByteOffset]|= (1<<ELeftBitOffset);
20ac952a623c 201040_02
hgs
parents:
diff changeset
   231
	iFeatureBitmask[ERightByteOffset]|= (1<<ERightBitOffset);
20ac952a623c 201040_02
hgs
parents:
diff changeset
   232
	iFeatureBitmask[ERightUpByteOffset]|= (1<<ERightUpBitOffset);
20ac952a623c 201040_02
hgs
parents:
diff changeset
   233
	iFeatureBitmask[ERightDownByteOffset]|= (1<<ERightDownBitOffset);
20ac952a623c 201040_02
hgs
parents:
diff changeset
   234
	iFeatureBitmask[ELeftUpByteOffset]|= (1<<ELeftUpBitOffset);
20ac952a623c 201040_02
hgs
parents:
diff changeset
   235
	iFeatureBitmask[ELeftDownByteOffset]|= (1<<ELeftDownBitOffset);
20ac952a623c 201040_02
hgs
parents:
diff changeset
   236
	iFeatureBitmask[ERootMenuByteOffset]|= (1<<ERootMenuBitOffset);
20ac952a623c 201040_02
hgs
parents:
diff changeset
   237
	iFeatureBitmask[ESetupMenuByteOffset]|= (1<<ESetupMenuBitOffset);
20ac952a623c 201040_02
hgs
parents:
diff changeset
   238
	iFeatureBitmask[EContentsMenuByteOffset]|= (1<<EContentsMenuBitOffset);
20ac952a623c 201040_02
hgs
parents:
diff changeset
   239
	iFeatureBitmask[EFavoriteMenuByteOffset]|= (1<<EFavoriteMenuBitOffset);
20ac952a623c 201040_02
hgs
parents:
diff changeset
   240
	iFeatureBitmask[EExitByteOffset]|= (1<<EExitBitOffset);
20ac952a623c 201040_02
hgs
parents:
diff changeset
   241
	iFeatureBitmask[E0ByteOffset]|= (1<<E0BitOffset);
20ac952a623c 201040_02
hgs
parents:
diff changeset
   242
	iFeatureBitmask[E1ByteOffset]|= (1<<E1BitOffset);
20ac952a623c 201040_02
hgs
parents:
diff changeset
   243
	iFeatureBitmask[E2ByteOffset]|= (1<<E2BitOffset);
20ac952a623c 201040_02
hgs
parents:
diff changeset
   244
	iFeatureBitmask[E3ByteOffset]|= (1<<E3BitOffset);
20ac952a623c 201040_02
hgs
parents:
diff changeset
   245
	iFeatureBitmask[E4ByteOffset]|= (1<<E4BitOffset);
20ac952a623c 201040_02
hgs
parents:
diff changeset
   246
	iFeatureBitmask[E5ByteOffset]|= (1<<E5BitOffset);
20ac952a623c 201040_02
hgs
parents:
diff changeset
   247
	iFeatureBitmask[E6ByteOffset]|= (1<<E6BitOffset);
20ac952a623c 201040_02
hgs
parents:
diff changeset
   248
	iFeatureBitmask[E7ByteOffset]|= (1<<E7BitOffset);
20ac952a623c 201040_02
hgs
parents:
diff changeset
   249
	iFeatureBitmask[E8ByteOffset]|= (1<<E8BitOffset);
20ac952a623c 201040_02
hgs
parents:
diff changeset
   250
	iFeatureBitmask[E9ByteOffset]|= (1<<E9BitOffset);
20ac952a623c 201040_02
hgs
parents:
diff changeset
   251
	iFeatureBitmask[EDotByteOffset]|= (1<<EDotBitOffset);
20ac952a623c 201040_02
hgs
parents:
diff changeset
   252
	iFeatureBitmask[EEnterByteOffset]|= (1<<EEnterBitOffset);
20ac952a623c 201040_02
hgs
parents:
diff changeset
   253
	iFeatureBitmask[EClearByteOffset]|= (1<<EClearBitOffset);
20ac952a623c 201040_02
hgs
parents:
diff changeset
   254
	iFeatureBitmask[EChannelUpByteOffset]|= (1<<EChannelUpBitOffset);
20ac952a623c 201040_02
hgs
parents:
diff changeset
   255
	iFeatureBitmask[EChannelDownByteOffset]|= (1<<EChannelDownBitOffset);
20ac952a623c 201040_02
hgs
parents:
diff changeset
   256
	iFeatureBitmask[EPreviousChannelByteOffset]|= (1<<EPreviousChannelBitOffset);
20ac952a623c 201040_02
hgs
parents:
diff changeset
   257
	iFeatureBitmask[ESoundSelectByteOffset]|= (1<<ESoundSelectBitOffset);
20ac952a623c 201040_02
hgs
parents:
diff changeset
   258
	iFeatureBitmask[EInputSelectByteOffset]|= (1<<EInputSelectBitOffset);
20ac952a623c 201040_02
hgs
parents:
diff changeset
   259
	iFeatureBitmask[EDisplayInformationByteOffset]|= (1<<EDisplayInformationBitOffset);
20ac952a623c 201040_02
hgs
parents:
diff changeset
   260
	iFeatureBitmask[EHelpByteOffset]|= (1<<EHelpBitOffset);
20ac952a623c 201040_02
hgs
parents:
diff changeset
   261
	iFeatureBitmask[EPageUpByteOffset]|= (1<<EPageUpBitOffset);
20ac952a623c 201040_02
hgs
parents:
diff changeset
   262
	iFeatureBitmask[EPageDownByteOffset]|= (1<<EPageDownBitOffset);
20ac952a623c 201040_02
hgs
parents:
diff changeset
   263
	iFeatureBitmask[EPowerByteOffset]|= (1<<EPowerBitOffset);
20ac952a623c 201040_02
hgs
parents:
diff changeset
   264
	iFeatureBitmask[EVolumeUpByteOffset]|= (1<<EVolumeUpBitOffset);
20ac952a623c 201040_02
hgs
parents:
diff changeset
   265
	iFeatureBitmask[EVolumeDownByteOffset]|= (1<<EVolumeDownBitOffset);
20ac952a623c 201040_02
hgs
parents:
diff changeset
   266
	iFeatureBitmask[EMuteByteOffset]|= (1<<EMuteBitOffset);
20ac952a623c 201040_02
hgs
parents:
diff changeset
   267
	iFeatureBitmask[EPlayByteOffset]|= (1<<EPlayBitOffset);
20ac952a623c 201040_02
hgs
parents:
diff changeset
   268
	iFeatureBitmask[EStopByteOffset]|= (1<<EStopBitOffset);
20ac952a623c 201040_02
hgs
parents:
diff changeset
   269
	iFeatureBitmask[EPauseByteOffset]|= (1<<EPauseBitOffset);
20ac952a623c 201040_02
hgs
parents:
diff changeset
   270
	iFeatureBitmask[ERecordByteOffset]|= (1<<ERecordBitOffset);
20ac952a623c 201040_02
hgs
parents:
diff changeset
   271
	iFeatureBitmask[ERewindByteOffset]|= (1<<ERewindBitOffset);
20ac952a623c 201040_02
hgs
parents:
diff changeset
   272
	iFeatureBitmask[EFastForwardByteOffset]|= (1<<EFastForwardBitOffset);
20ac952a623c 201040_02
hgs
parents:
diff changeset
   273
	iFeatureBitmask[EEjectByteOffset]|= (1<<EEjectBitOffset);
20ac952a623c 201040_02
hgs
parents:
diff changeset
   274
	iFeatureBitmask[EForwardByteOffset]|= (1<<EForwardBitOffset);
20ac952a623c 201040_02
hgs
parents:
diff changeset
   275
	iFeatureBitmask[EBackwardByteOffset]|= (1<<EBackwardBitOffset);
20ac952a623c 201040_02
hgs
parents:
diff changeset
   276
	iFeatureBitmask[EAngleByteOffset]|= (1<<EAngleBitOffset);
20ac952a623c 201040_02
hgs
parents:
diff changeset
   277
	iFeatureBitmask[ESubpictureByteOffset]|= (1<<ESubpictureBitOffset);
20ac952a623c 201040_02
hgs
parents:
diff changeset
   278
	iFeatureBitmask[EF1ByteOffset]|= (1<<EF1BitOffset);
20ac952a623c 201040_02
hgs
parents:
diff changeset
   279
	iFeatureBitmask[EF2ByteOffset]|= (1<<EF2BitOffset);
20ac952a623c 201040_02
hgs
parents:
diff changeset
   280
	iFeatureBitmask[EF3ByteOffset]|= (1<<EF3BitOffset);
20ac952a623c 201040_02
hgs
parents:
diff changeset
   281
	iFeatureBitmask[EF4ByteOffset]|= (1<<EF4BitOffset);
20ac952a623c 201040_02
hgs
parents:
diff changeset
   282
	iFeatureBitmask[EF5ByteOffset]|= (1<<EF5BitOffset);
20ac952a623c 201040_02
hgs
parents:
diff changeset
   283
	}
20ac952a623c 201040_02
hgs
parents:
diff changeset
   284
20ac952a623c 201040_02
hgs
parents:
diff changeset
   285
void TPlayerFeatureBitmask::SetAbsoluteVolumeApiFeatures(const RArray<TUint>& aOperation)
20ac952a623c 201040_02
hgs
parents:
diff changeset
   286
	{
20ac952a623c 201040_02
hgs
parents:
diff changeset
   287
	if(aOperation.Count())
20ac952a623c 201040_02
hgs
parents:
diff changeset
   288
		{
20ac952a623c 201040_02
hgs
parents:
diff changeset
   289
		iFeatureBitmask[EAdvancedControlPlayerByteOffset] |= (1<<EAdvancedControlPlayerBitOffset);
20ac952a623c 201040_02
hgs
parents:
diff changeset
   290
		}
20ac952a623c 201040_02
hgs
parents:
diff changeset
   291
	}
20ac952a623c 201040_02
hgs
parents:
diff changeset
   292
20ac952a623c 201040_02
hgs
parents:
diff changeset
   293
void TPlayerFeatureBitmask::SetGroupNavigationApiFeatures(const RArray<TUint>& aOperation)
20ac952a623c 201040_02
hgs
parents:
diff changeset
   294
	{
20ac952a623c 201040_02
hgs
parents:
diff changeset
   295
	if(aOperation.Count())
20ac952a623c 201040_02
hgs
parents:
diff changeset
   296
		{
20ac952a623c 201040_02
hgs
parents:
diff changeset
   297
		iFeatureBitmask[EVendorUniqueByteOffset] |= (1<<EVendorUniqueBitOffset);
20ac952a623c 201040_02
hgs
parents:
diff changeset
   298
		iFeatureBitmask[EGroupNavigationByteOffset] |=  (1<<EGroupNavigationBitOffset);
20ac952a623c 201040_02
hgs
parents:
diff changeset
   299
		}
20ac952a623c 201040_02
hgs
parents:
diff changeset
   300
	}
20ac952a623c 201040_02
hgs
parents:
diff changeset
   301
20ac952a623c 201040_02
hgs
parents:
diff changeset
   302
void TPlayerFeatureBitmask::SetNowPlayingApiFeatures(const RArray<TUint>& aOperation)
20ac952a623c 201040_02
hgs
parents:
diff changeset
   303
	{
20ac952a623c 201040_02
hgs
parents:
diff changeset
   304
	if(aOperation.Count())
20ac952a623c 201040_02
hgs
parents:
diff changeset
   305
		{
20ac952a623c 201040_02
hgs
parents:
diff changeset
   306
		iFeatureBitmask[EAdvancedControlPlayerByteOffset] |= (1<<EAdvancedControlPlayerBitOffset);
20ac952a623c 201040_02
hgs
parents:
diff changeset
   307
		iFeatureBitmask[ENowPlayingByteOffset] |= (1<<ENowPlayingBitOffset);
20ac952a623c 201040_02
hgs
parents:
diff changeset
   308
		
20ac952a623c 201040_02
hgs
parents:
diff changeset
   309
		if(aOperation.Find(EAddToNowPlaying) >= 0)
20ac952a623c 201040_02
hgs
parents:
diff changeset
   310
			{
20ac952a623c 201040_02
hgs
parents:
diff changeset
   311
			iFeatureBitmask[EAddToNowPlayingByteOffset] |= (1<<EAddToNowPlayingBitOffset);
20ac952a623c 201040_02
hgs
parents:
diff changeset
   312
			}
20ac952a623c 201040_02
hgs
parents:
diff changeset
   313
		}
20ac952a623c 201040_02
hgs
parents:
diff changeset
   314
	}
20ac952a623c 201040_02
hgs
parents:
diff changeset
   315
20ac952a623c 201040_02
hgs
parents:
diff changeset
   316
void TPlayerFeatureBitmask::SetMediaBrowseApiFeatures(const RArray<TUint>& aOperation)
20ac952a623c 201040_02
hgs
parents:
diff changeset
   317
	{
20ac952a623c 201040_02
hgs
parents:
diff changeset
   318
	if(aOperation.Count())
20ac952a623c 201040_02
hgs
parents:
diff changeset
   319
		{
20ac952a623c 201040_02
hgs
parents:
diff changeset
   320
		iFeatureBitmask[EAdvancedControlPlayerByteOffset] |= (1<<EAdvancedControlPlayerBitOffset);
20ac952a623c 201040_02
hgs
parents:
diff changeset
   321
		iFeatureBitmask[ENowPlayingByteOffset] |= (1<<ENowPlayingBitOffset);
20ac952a623c 201040_02
hgs
parents:
diff changeset
   322
		iFeatureBitmask[EBrowsingByteOffset] |= (1<<EBrowsingBitOffset);
20ac952a623c 201040_02
hgs
parents:
diff changeset
   323
20ac952a623c 201040_02
hgs
parents:
diff changeset
   324
		if(aOperation.Find(ESearchOperationId) >= 0)
20ac952a623c 201040_02
hgs
parents:
diff changeset
   325
			{
20ac952a623c 201040_02
hgs
parents:
diff changeset
   326
			iFeatureBitmask[ESearchByteOffset] |= (1<<ESearchBitOffset);
20ac952a623c 201040_02
hgs
parents:
diff changeset
   327
			}
20ac952a623c 201040_02
hgs
parents:
diff changeset
   328
		
20ac952a623c 201040_02
hgs
parents:
diff changeset
   329
		if(aOperation.Find(EUIDPersistency) >= 0)
20ac952a623c 201040_02
hgs
parents:
diff changeset
   330
			{
20ac952a623c 201040_02
hgs
parents:
diff changeset
   331
			iFeatureBitmask[EUidPersistencyByteOffset] |= (1<<EUidPersistencyBitOffset);
20ac952a623c 201040_02
hgs
parents:
diff changeset
   332
			iFeatureBitmask[EDatabaseAwareByteOffset] |= (1<<EDatabaseAwareBitOffset);
20ac952a623c 201040_02
hgs
parents:
diff changeset
   333
			}
20ac952a623c 201040_02
hgs
parents:
diff changeset
   334
		}
20ac952a623c 201040_02
hgs
parents:
diff changeset
   335
	}
20ac952a623c 201040_02
hgs
parents:
diff changeset
   336
20ac952a623c 201040_02
hgs
parents:
diff changeset
   337