remotecontrol/avrcp/mediabrowseapi/src/remcondatabaseawaremedialibrarybrowse.cpp
author jontanne
Thu, 14 Oct 2010 11:16:56 +0100
changeset 52 321a10f609ef
parent 51 20ac952a623c
permissions -rw-r--r--
Add USB HCTL to bt package
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
51
20ac952a623c 201040_02
hgs
parents:
diff changeset
     1
// Copyright (c) 2008-2009 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
//
20ac952a623c 201040_02
hgs
parents:
diff changeset
    15
20ac952a623c 201040_02
hgs
parents:
diff changeset
    16
20ac952a623c 201040_02
hgs
parents:
diff changeset
    17
20ac952a623c 201040_02
hgs
parents:
diff changeset
    18
/**
20ac952a623c 201040_02
hgs
parents:
diff changeset
    19
 @file
20ac952a623c 201040_02
hgs
parents:
diff changeset
    20
 @publishedAll
20ac952a623c 201040_02
hgs
parents:
diff changeset
    21
 @released
20ac952a623c 201040_02
hgs
parents:
diff changeset
    22
*/
20ac952a623c 201040_02
hgs
parents:
diff changeset
    23
20ac952a623c 201040_02
hgs
parents:
diff changeset
    24
#include <remcondatabaseawaremedialibrarybrowse.h>
20ac952a623c 201040_02
hgs
parents:
diff changeset
    25
20ac952a623c 201040_02
hgs
parents:
diff changeset
    26
/** 
20ac952a623c 201040_02
hgs
parents:
diff changeset
    27
Called by the client in response to a MrcdamlboGetFolderListing() call.
20ac952a623c 201040_02
hgs
parents:
diff changeset
    28
20ac952a623c 201040_02
hgs
parents:
diff changeset
    29
@param aFolderListing A listing of the items that are 
20ac952a623c 201040_02
hgs
parents:
diff changeset
    30
       in the range requested by the MrcdamlboGetFolderListing() call.
20ac952a623c 201040_02
hgs
parents:
diff changeset
    31
20ac952a623c 201040_02
hgs
parents:
diff changeset
    32
@param aMediaLibraryStateCookie The current value of the state cookie.
20ac952a623c 201040_02
hgs
parents:
diff changeset
    33
20ac952a623c 201040_02
hgs
parents:
diff changeset
    34
@param aResult The result of the MrcdamlboGetFolderListing() operation.
20ac952a623c 201040_02
hgs
parents:
diff changeset
    35
     - KErrNone if the operation was successful.
20ac952a623c 201040_02
hgs
parents:
diff changeset
    36
     - KErrMediaBrowseInvalidOffset if there is no media available at the 
20ac952a623c 201040_02
hgs
parents:
diff changeset
    37
       offset of the start item, i.e. the start of range provided via 
20ac952a623c 201040_02
hgs
parents:
diff changeset
    38
       MrcdamlboGetFolderListing() is not valid.
20ac952a623c 201040_02
hgs
parents:
diff changeset
    39
     - System wide error code otherwise.
20ac952a623c 201040_02
hgs
parents:
diff changeset
    40
*/
20ac952a623c 201040_02
hgs
parents:
diff changeset
    41
EXPORT_C void MRemConDatabaseAwareMediaLibraryBrowse::MrcdamlbFolderListing(
20ac952a623c 201040_02
hgs
parents:
diff changeset
    42
		const TArray<TRemConItem>& aFolderListing, 
20ac952a623c 201040_02
hgs
parents:
diff changeset
    43
		TUint16 aMediaLibraryStateCookie, 
20ac952a623c 201040_02
hgs
parents:
diff changeset
    44
		TUint aResult)
20ac952a623c 201040_02
hgs
parents:
diff changeset
    45
	{
20ac952a623c 201040_02
hgs
parents:
diff changeset
    46
	MrcdamlbDoFolderListing(aFolderListing, aMediaLibraryStateCookie, aResult);
20ac952a623c 201040_02
hgs
parents:
diff changeset
    47
	}
20ac952a623c 201040_02
hgs
parents:
diff changeset
    48
20ac952a623c 201040_02
hgs
parents:
diff changeset
    49
/** 
20ac952a623c 201040_02
hgs
parents:
diff changeset
    50
Called by the client in response to a MrcdamlboFolderUp call.
20ac952a623c 201040_02
hgs
parents:
diff changeset
    51
20ac952a623c 201040_02
hgs
parents:
diff changeset
    52
@param aItemCount The number of items present in this folder.
20ac952a623c 201040_02
hgs
parents:
diff changeset
    53
@param aResult The result of the MrcdamlboFolderUp operation.  
20ac952a623c 201040_02
hgs
parents:
diff changeset
    54
     - KErrNone if the operation was successful.
20ac952a623c 201040_02
hgs
parents:
diff changeset
    55
     - KErrInvalidMediaLibraryStateCookie if the media library state cookie 
20ac952a623c 201040_02
hgs
parents:
diff changeset
    56
       provided does not match the client's state cookie
20ac952a623c 201040_02
hgs
parents:
diff changeset
    57
     - System wide error code otherwise.
20ac952a623c 201040_02
hgs
parents:
diff changeset
    58
*/
20ac952a623c 201040_02
hgs
parents:
diff changeset
    59
EXPORT_C void MRemConDatabaseAwareMediaLibraryBrowse::MrcdamlbFolderUpResult(
20ac952a623c 201040_02
hgs
parents:
diff changeset
    60
		TUint aItemCount, TInt aResult)
20ac952a623c 201040_02
hgs
parents:
diff changeset
    61
	{
20ac952a623c 201040_02
hgs
parents:
diff changeset
    62
	MrcdamlbDoFolderUpResult(aItemCount, aResult);
20ac952a623c 201040_02
hgs
parents:
diff changeset
    63
	}
20ac952a623c 201040_02
hgs
parents:
diff changeset
    64
20ac952a623c 201040_02
hgs
parents:
diff changeset
    65
/** 
20ac952a623c 201040_02
hgs
parents:
diff changeset
    66
Called by the client in response to a MrcdamlboFolderDown() call.
20ac952a623c 201040_02
hgs
parents:
diff changeset
    67
20ac952a623c 201040_02
hgs
parents:
diff changeset
    68
@param aItemCount The number of items present in this folder.
20ac952a623c 201040_02
hgs
parents:
diff changeset
    69
20ac952a623c 201040_02
hgs
parents:
diff changeset
    70
@param aResult The result of the MrcdamlboFolderDown() operation
20ac952a623c 201040_02
hgs
parents:
diff changeset
    71
     - KErrNone if the operation was successful.
20ac952a623c 201040_02
hgs
parents:
diff changeset
    72
     - KErrInvalidMediaLibraryStateCookie if the media library state cookie 
20ac952a623c 201040_02
hgs
parents:
diff changeset
    73
       provided does not match the client's state cookie
20ac952a623c 201040_02
hgs
parents:
diff changeset
    74
     - KErrMediaBrowseInvalidDirection if the folder provided is not a valid 
20ac952a623c 201040_02
hgs
parents:
diff changeset
    75
       folder e.g. path A/B/C, the current dirctory is B, and the param 
20ac952a623c 201040_02
hgs
parents:
diff changeset
    76
       provided with MrcdamlboFolderDown()is A, obviously you can not change 
20ac952a623c 201040_02
hgs
parents:
diff changeset
    77
       folder down to A, so A is invalid.
20ac952a623c 201040_02
hgs
parents:
diff changeset
    78
     - KErrMediaBrowseNotADirectory if the UID provided does not refer to a 
20ac952a623c 201040_02
hgs
parents:
diff changeset
    79
       folder item, e.g. it is a media element.
20ac952a623c 201040_02
hgs
parents:
diff changeset
    80
     - KErrInvalidUid if the UID provided is invalid.
20ac952a623c 201040_02
hgs
parents:
diff changeset
    81
     - System wide error code otherwise.
20ac952a623c 201040_02
hgs
parents:
diff changeset
    82
*/
20ac952a623c 201040_02
hgs
parents:
diff changeset
    83
EXPORT_C void MRemConDatabaseAwareMediaLibraryBrowse::MrcdamlbFolderDownResult(
20ac952a623c 201040_02
hgs
parents:
diff changeset
    84
		TUint aItemCount, TInt aResult)
20ac952a623c 201040_02
hgs
parents:
diff changeset
    85
	{
20ac952a623c 201040_02
hgs
parents:
diff changeset
    86
	MrcdamlbDoFolderDownResult(aItemCount, aResult);
20ac952a623c 201040_02
hgs
parents:
diff changeset
    87
	}
20ac952a623c 201040_02
hgs
parents:
diff changeset
    88
20ac952a623c 201040_02
hgs
parents:
diff changeset
    89
/** 
20ac952a623c 201040_02
hgs
parents:
diff changeset
    90
Called by the client in response to a MrcdamlboGetPath() call.
20ac952a623c 201040_02
hgs
parents:
diff changeset
    91
20ac952a623c 201040_02
hgs
parents:
diff changeset
    92
@param aItemCount The number of items present in this folder.
20ac952a623c 201040_02
hgs
parents:
diff changeset
    93
20ac952a623c 201040_02
hgs
parents:
diff changeset
    94
@param aMediaLibraryStateCookie The current value of the state cookie.
20ac952a623c 201040_02
hgs
parents:
diff changeset
    95
20ac952a623c 201040_02
hgs
parents:
diff changeset
    96
@param aResult The result of the MrcdamlboGetPath() operation
20ac952a623c 201040_02
hgs
parents:
diff changeset
    97
     - KErrNone if the operation is successful.
20ac952a623c 201040_02
hgs
parents:
diff changeset
    98
     - System wide error code otherwise.
20ac952a623c 201040_02
hgs
parents:
diff changeset
    99
*/
20ac952a623c 201040_02
hgs
parents:
diff changeset
   100
EXPORT_C void MRemConDatabaseAwareMediaLibraryBrowse::MrcdamlbGetPathResult(
20ac952a623c 201040_02
hgs
parents:
diff changeset
   101
		TUint aItemCount, 
20ac952a623c 201040_02
hgs
parents:
diff changeset
   102
		TUint16 aMediaLibraryStateCookie, 
20ac952a623c 201040_02
hgs
parents:
diff changeset
   103
		TInt aResult)
20ac952a623c 201040_02
hgs
parents:
diff changeset
   104
	{
20ac952a623c 201040_02
hgs
parents:
diff changeset
   105
	MrcdamlbDoGetPathResult(aItemCount, aMediaLibraryStateCookie, aResult);
20ac952a623c 201040_02
hgs
parents:
diff changeset
   106
	}
20ac952a623c 201040_02
hgs
parents:
diff changeset
   107
20ac952a623c 201040_02
hgs
parents:
diff changeset
   108
/** 
20ac952a623c 201040_02
hgs
parents:
diff changeset
   109
Called by the client in response to a MrcdamlboSearch() call to indicate
20ac952a623c 201040_02
hgs
parents:
diff changeset
   110
that a search has completed.
20ac952a623c 201040_02
hgs
parents:
diff changeset
   111
 
20ac952a623c 201040_02
hgs
parents:
diff changeset
   112
@param aNumberItemsFound The number of items found by the search.
20ac952a623c 201040_02
hgs
parents:
diff changeset
   113
@param aMediaLibraryStateCookie The current of the state cookie.
20ac952a623c 201040_02
hgs
parents:
diff changeset
   114
@param aResult The result of the search.  
20ac952a623c 201040_02
hgs
parents:
diff changeset
   115
     - KErrNone if the search completed successfully
20ac952a623c 201040_02
hgs
parents:
diff changeset
   116
     - System wide error otherwise.
20ac952a623c 201040_02
hgs
parents:
diff changeset
   117
*/
20ac952a623c 201040_02
hgs
parents:
diff changeset
   118
EXPORT_C void MRemConDatabaseAwareMediaLibraryBrowse::MrcdamlbSearchResult(
20ac952a623c 201040_02
hgs
parents:
diff changeset
   119
		TUint aNumberItemsFound,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   120
		TUint16 aMediaLibraryStateCookie, 
20ac952a623c 201040_02
hgs
parents:
diff changeset
   121
		TInt aResult)
20ac952a623c 201040_02
hgs
parents:
diff changeset
   122
	{
20ac952a623c 201040_02
hgs
parents:
diff changeset
   123
	MrcdamlbDoSearchResult(aNumberItemsFound, aMediaLibraryStateCookie, aResult);
20ac952a623c 201040_02
hgs
parents:
diff changeset
   124
	}
20ac952a623c 201040_02
hgs
parents:
diff changeset
   125
20ac952a623c 201040_02
hgs
parents:
diff changeset
   126
/** 
20ac952a623c 201040_02
hgs
parents:
diff changeset
   127
Called by the client in the case that the state of the media library has
20ac952a623c 201040_02
hgs
parents:
diff changeset
   128
changed.  This means that the media library state cookie provided prior to 
20ac952a623c 201040_02
hgs
parents:
diff changeset
   129
this call by the client may no longer be valid.  Typical causes for this 
20ac952a623c 201040_02
hgs
parents:
diff changeset
   130
would be items added or removed from the media library.
20ac952a623c 201040_02
hgs
parents:
diff changeset
   131
 
20ac952a623c 201040_02
hgs
parents:
diff changeset
   132
This function shall be called by any client any time it believes that media 
20ac952a623c 201040_02
hgs
parents:
diff changeset
   133
library state cookie has ceased to be valid, for example if the current 
20ac952a623c 201040_02
hgs
parents:
diff changeset
   134
directory is on removable media, and that media has been removed.  
20ac952a623c 201040_02
hgs
parents:
diff changeset
   135
That includes clients that are only able to offer state cookie that are 
20ac952a623c 201040_02
hgs
parents:
diff changeset
   136
limited to one directory.  
20ac952a623c 201040_02
hgs
parents:
diff changeset
   137
 
20ac952a623c 201040_02
hgs
parents:
diff changeset
   138
@param aMediaLibraryStateCookie The current value of the state cookie which 
20ac952a623c 201040_02
hgs
parents:
diff changeset
   139
       enables state mismatches between the client and the remote controller 
20ac952a623c 201040_02
hgs
parents:
diff changeset
   140
       device to be detected.
20ac952a623c 201040_02
hgs
parents:
diff changeset
   141
*/
20ac952a623c 201040_02
hgs
parents:
diff changeset
   142
EXPORT_C void MRemConDatabaseAwareMediaLibraryBrowse::MrcdamlbMediaLibraryStateChange(
20ac952a623c 201040_02
hgs
parents:
diff changeset
   143
		TUint16 aMediaLibraryStateCookie)
20ac952a623c 201040_02
hgs
parents:
diff changeset
   144
	{
20ac952a623c 201040_02
hgs
parents:
diff changeset
   145
	MrcdamlbDoMediaLibraryStateChange(aMediaLibraryStateCookie);
20ac952a623c 201040_02
hgs
parents:
diff changeset
   146
	}
20ac952a623c 201040_02
hgs
parents:
diff changeset
   147
20ac952a623c 201040_02
hgs
parents:
diff changeset
   148
/**
20ac952a623c 201040_02
hgs
parents:
diff changeset
   149
Called by the client in response to MrcdamlboGetItem() call in the case the
20ac952a623c 201040_02
hgs
parents:
diff changeset
   150
requested item is a folder item.
20ac952a623c 201040_02
hgs
parents:
diff changeset
   151
20ac952a623c 201040_02
hgs
parents:
diff changeset
   152
@param aFolderID The folder UID.
20ac952a623c 201040_02
hgs
parents:
diff changeset
   153
@param aFolderName The folder name. Takes a copy of it.
20ac952a623c 201040_02
hgs
parents:
diff changeset
   154
@param aFolderType The folder type.
20ac952a623c 201040_02
hgs
parents:
diff changeset
   155
@param aPlayable Indicaties whether the folder is playable
20ac952a623c 201040_02
hgs
parents:
diff changeset
   156
     - KFolderNotPlayable the folder can not be played
20ac952a623c 201040_02
hgs
parents:
diff changeset
   157
     - KFolderPlayable the folder can be played
20ac952a623c 201040_02
hgs
parents:
diff changeset
   158
@param aAttributes The attributes of the folder item requested by 
20ac952a623c 201040_02
hgs
parents:
diff changeset
   159
       MrcdamlboGetItem()
20ac952a623c 201040_02
hgs
parents:
diff changeset
   160
@param aResult The result of the MrcdamlboGetItem() operation.
20ac952a623c 201040_02
hgs
parents:
diff changeset
   161
     - KErrNone if the operation was successful.
20ac952a623c 201040_02
hgs
parents:
diff changeset
   162
     - KErrInvalidMediaLibraryStateCookie if the media library state cookie 
20ac952a623c 201040_02
hgs
parents:
diff changeset
   163
       provided does not match the client's state cookie.
20ac952a623c 201040_02
hgs
parents:
diff changeset
   164
     - KErrInvalidUid if the uid of the item requested is invalid, 
20ac952a623c 201040_02
hgs
parents:
diff changeset
   165
       e.g. the client removed the item before the request 
20ac952a623c 201040_02
hgs
parents:
diff changeset
   166
       MrcdamlboGetItem() coming.
20ac952a623c 201040_02
hgs
parents:
diff changeset
   167
     - System wide error code otherwise.
20ac952a623c 201040_02
hgs
parents:
diff changeset
   168
*/
20ac952a623c 201040_02
hgs
parents:
diff changeset
   169
EXPORT_C void MRemConDatabaseAwareMediaLibraryBrowse::MrcdamlbFolderItemResult(
20ac952a623c 201040_02
hgs
parents:
diff changeset
   170
		const TRemConItemUid& aFolderID,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   171
		const TDesC8& aFolderName, 
20ac952a623c 201040_02
hgs
parents:
diff changeset
   172
		TFolderItemType aFolderType, 
20ac952a623c 201040_02
hgs
parents:
diff changeset
   173
		TFolderItemPlayable aPlayable,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   174
		const TArray<TMediaElementAttribute>& aAttributes,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   175
		TInt aResult)
20ac952a623c 201040_02
hgs
parents:
diff changeset
   176
	{
20ac952a623c 201040_02
hgs
parents:
diff changeset
   177
	MrcdamlbDoFolderItemResult(aFolderID, aFolderName, aFolderType, aPlayable, aAttributes, aResult);
20ac952a623c 201040_02
hgs
parents:
diff changeset
   178
	}
20ac952a623c 201040_02
hgs
parents:
diff changeset
   179
20ac952a623c 201040_02
hgs
parents:
diff changeset
   180
/**
20ac952a623c 201040_02
hgs
parents:
diff changeset
   181
Called by the client in response to MrcdamlboGetItem() call in the case the
20ac952a623c 201040_02
hgs
parents:
diff changeset
   182
requested item is a media element item.
20ac952a623c 201040_02
hgs
parents:
diff changeset
   183
20ac952a623c 201040_02
hgs
parents:
diff changeset
   184
@param aMediaID The media element UID.
20ac952a623c 201040_02
hgs
parents:
diff changeset
   185
@param aMediaName The media name. Takes a copy of it.
20ac952a623c 201040_02
hgs
parents:
diff changeset
   186
@param aMediaType The media type.
20ac952a623c 201040_02
hgs
parents:
diff changeset
   187
@param aAttributes The attributes list. Takes a copy of it.
20ac952a623c 201040_02
hgs
parents:
diff changeset
   188
@param aResult The result of the MrcdamlboGetItem() operation.
20ac952a623c 201040_02
hgs
parents:
diff changeset
   189
     - KErrNone if the operation was successful.
20ac952a623c 201040_02
hgs
parents:
diff changeset
   190
     - KErrInvalidMediaLibraryStateCookie if the media library state cookie 
20ac952a623c 201040_02
hgs
parents:
diff changeset
   191
       provided does not match the client's state cookie.
20ac952a623c 201040_02
hgs
parents:
diff changeset
   192
     - KErrInvalidUid if the uid of the item requested is invalid, 
20ac952a623c 201040_02
hgs
parents:
diff changeset
   193
       e.g. the client removed the item before the request 
20ac952a623c 201040_02
hgs
parents:
diff changeset
   194
       MrcdamlboGetItem() coming.
20ac952a623c 201040_02
hgs
parents:
diff changeset
   195
     - System wide error code otherwise.
20ac952a623c 201040_02
hgs
parents:
diff changeset
   196
*/
20ac952a623c 201040_02
hgs
parents:
diff changeset
   197
EXPORT_C void MRemConDatabaseAwareMediaLibraryBrowse::MrcdamlbMediaElementItemResult(
20ac952a623c 201040_02
hgs
parents:
diff changeset
   198
		const TRemConItemUid& aMediaID, 
20ac952a623c 201040_02
hgs
parents:
diff changeset
   199
		const TDesC8& aMediaName, 
20ac952a623c 201040_02
hgs
parents:
diff changeset
   200
		TMediaItemType aMediaType, 
20ac952a623c 201040_02
hgs
parents:
diff changeset
   201
		const TArray<TMediaElementAttribute>& aAttributes,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   202
		TInt aResult)
20ac952a623c 201040_02
hgs
parents:
diff changeset
   203
	{
20ac952a623c 201040_02
hgs
parents:
diff changeset
   204
	MrcdamlbDoMediaElementItemResult(aMediaID, aMediaName, aMediaType, aAttributes,aResult);
20ac952a623c 201040_02
hgs
parents:
diff changeset
   205
	}