remotecontrol/remotecontrolfw/client/extapi1/src/trackinfocontroller.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) 2004-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
 @file
20ac952a623c 201040_02
hgs
parents:
diff changeset
    18
 @internalComponent
20ac952a623c 201040_02
hgs
parents:
diff changeset
    19
*/
20ac952a623c 201040_02
hgs
parents:
diff changeset
    20
20ac952a623c 201040_02
hgs
parents:
diff changeset
    21
#include <bluetooth/logger.h>
20ac952a623c 201040_02
hgs
parents:
diff changeset
    22
#include <e32base.h>
20ac952a623c 201040_02
hgs
parents:
diff changeset
    23
#include <remcon/remconextapi1.h>
20ac952a623c 201040_02
hgs
parents:
diff changeset
    24
#include <remcontrackinfocontroller.h>
20ac952a623c 201040_02
hgs
parents:
diff changeset
    25
#include <remcontrackinfocontrollerobserver.h>
20ac952a623c 201040_02
hgs
parents:
diff changeset
    26
#include <remconinterfaceselector.h>
20ac952a623c 201040_02
hgs
parents:
diff changeset
    27
20ac952a623c 201040_02
hgs
parents:
diff changeset
    28
#ifdef __FLOG_ACTIVE
20ac952a623c 201040_02
hgs
parents:
diff changeset
    29
_LIT8(KLogComponent, LOG_COMPONENT_REMCON_EXTAPI1);
20ac952a623c 201040_02
hgs
parents:
diff changeset
    30
#endif
20ac952a623c 201040_02
hgs
parents:
diff changeset
    31
20ac952a623c 201040_02
hgs
parents:
diff changeset
    32
// Used to pad over the results field in the operation-specific data.
20ac952a623c 201040_02
hgs
parents:
diff changeset
    33
_LIT8(KResultsPad, "    ");
20ac952a623c 201040_02
hgs
parents:
diff changeset
    34
20ac952a623c 201040_02
hgs
parents:
diff changeset
    35
EXPORT_C CRemConTrackInfoController* CRemConTrackInfoController::NewL(CRemConInterfaceSelector& aInterfaceSelector, 
20ac952a623c 201040_02
hgs
parents:
diff changeset
    36
																	MRemConTrackInfoControllerObserver& aObserver)
20ac952a623c 201040_02
hgs
parents:
diff changeset
    37
	{
20ac952a623c 201040_02
hgs
parents:
diff changeset
    38
	LOG_STATIC_FUNC
20ac952a623c 201040_02
hgs
parents:
diff changeset
    39
20ac952a623c 201040_02
hgs
parents:
diff changeset
    40
	CRemConTrackInfoController* self = new(ELeave) CRemConTrackInfoController(aInterfaceSelector, aObserver);
20ac952a623c 201040_02
hgs
parents:
diff changeset
    41
	CleanupStack::PushL(self);
20ac952a623c 201040_02
hgs
parents:
diff changeset
    42
	self->BaseConstructL();
20ac952a623c 201040_02
hgs
parents:
diff changeset
    43
	CleanupStack::Pop(self);
20ac952a623c 201040_02
hgs
parents:
diff changeset
    44
	return self;
20ac952a623c 201040_02
hgs
parents:
diff changeset
    45
	}
20ac952a623c 201040_02
hgs
parents:
diff changeset
    46
20ac952a623c 201040_02
hgs
parents:
diff changeset
    47
CRemConTrackInfoController::CRemConTrackInfoController(CRemConInterfaceSelector& aInterfaceSelector, 
20ac952a623c 201040_02
hgs
parents:
diff changeset
    48
													 MRemConTrackInfoControllerObserver& aObserver)
20ac952a623c 201040_02
hgs
parents:
diff changeset
    49
:	CRemConInterfaceBase(TUid::Uid(KRemConTrackInfoApiUid), 
20ac952a623c 201040_02
hgs
parents:
diff changeset
    50
						 KMaxName,
20ac952a623c 201040_02
hgs
parents:
diff changeset
    51
						 aInterfaceSelector,
20ac952a623c 201040_02
hgs
parents:
diff changeset
    52
						 ERemConClientTypeController),
20ac952a623c 201040_02
hgs
parents:
diff changeset
    53
	iObserver(aObserver)
20ac952a623c 201040_02
hgs
parents:
diff changeset
    54
	{
20ac952a623c 201040_02
hgs
parents:
diff changeset
    55
	}
20ac952a623c 201040_02
hgs
parents:
diff changeset
    56
20ac952a623c 201040_02
hgs
parents:
diff changeset
    57
EXPORT_C CRemConTrackInfoController::~CRemConTrackInfoController()
20ac952a623c 201040_02
hgs
parents:
diff changeset
    58
	{
20ac952a623c 201040_02
hgs
parents:
diff changeset
    59
	LOG_FUNC
20ac952a623c 201040_02
hgs
parents:
diff changeset
    60
	}
20ac952a623c 201040_02
hgs
parents:
diff changeset
    61
20ac952a623c 201040_02
hgs
parents:
diff changeset
    62
TAny* CRemConTrackInfoController::GetInterfaceIf(TUid aUid)
20ac952a623c 201040_02
hgs
parents:
diff changeset
    63
	{
20ac952a623c 201040_02
hgs
parents:
diff changeset
    64
	TAny* ret = NULL;
20ac952a623c 201040_02
hgs
parents:
diff changeset
    65
	if ( aUid == TUid::Uid(KRemConInterfaceIf1) )
20ac952a623c 201040_02
hgs
parents:
diff changeset
    66
		{
20ac952a623c 201040_02
hgs
parents:
diff changeset
    67
		ret = reinterpret_cast<TAny*>(
20ac952a623c 201040_02
hgs
parents:
diff changeset
    68
			static_cast<MRemConInterfaceIf*>(this)
20ac952a623c 201040_02
hgs
parents:
diff changeset
    69
			);
20ac952a623c 201040_02
hgs
parents:
diff changeset
    70
		}
20ac952a623c 201040_02
hgs
parents:
diff changeset
    71
20ac952a623c 201040_02
hgs
parents:
diff changeset
    72
	return ret;
20ac952a623c 201040_02
hgs
parents:
diff changeset
    73
	}
20ac952a623c 201040_02
hgs
parents:
diff changeset
    74
20ac952a623c 201040_02
hgs
parents:
diff changeset
    75
void CRemConTrackInfoController::MrcibNewMessage(TUint aOperationId, const TDesC8& aData)
20ac952a623c 201040_02
hgs
parents:
diff changeset
    76
	{
20ac952a623c 201040_02
hgs
parents:
diff changeset
    77
	LOG_FUNC
20ac952a623c 201040_02
hgs
parents:
diff changeset
    78
	LOG1(_L("\taOperationId = 0x%02x"), aOperationId);
20ac952a623c 201040_02
hgs
parents:
diff changeset
    79
	LOG1(_L("\taData.Length = %d"), aData.Length());
20ac952a623c 201040_02
hgs
parents:
diff changeset
    80
	
20ac952a623c 201040_02
hgs
parents:
diff changeset
    81
	// Get the response error out of aData.
20ac952a623c 201040_02
hgs
parents:
diff changeset
    82
	if ( aData.Length() < KRemConExtApi1MinimumDataLength )
20ac952a623c 201040_02
hgs
parents:
diff changeset
    83
		{
20ac952a623c 201040_02
hgs
parents:
diff changeset
    84
		return; // ditch malformed messages
20ac952a623c 201040_02
hgs
parents:
diff changeset
    85
		}
20ac952a623c 201040_02
hgs
parents:
diff changeset
    86
		
20ac952a623c 201040_02
hgs
parents:
diff changeset
    87
	TInt err = static_cast<TInt>(aData.Ptr()[0]);
20ac952a623c 201040_02
hgs
parents:
diff changeset
    88
20ac952a623c 201040_02
hgs
parents:
diff changeset
    89
	switch ( aOperationId )
20ac952a623c 201040_02
hgs
parents:
diff changeset
    90
		{
20ac952a623c 201040_02
hgs
parents:
diff changeset
    91
	case ERemConSetTrackName:
20ac952a623c 201040_02
hgs
parents:
diff changeset
    92
		iObserver.MrcticoSetTrackNameResponse(err);
20ac952a623c 201040_02
hgs
parents:
diff changeset
    93
		break;
20ac952a623c 201040_02
hgs
parents:
diff changeset
    94
20ac952a623c 201040_02
hgs
parents:
diff changeset
    95
//Only used in the pan-shared back to back test builds.
20ac952a623c 201040_02
hgs
parents:
diff changeset
    96
#ifdef SYMBIAN_ENABLE_TRACKINFO_BACKTOBACK_TEST_FUNCT
20ac952a623c 201040_02
hgs
parents:
diff changeset
    97
	case ERemConGetTrackName:
20ac952a623c 201040_02
hgs
parents:
diff changeset
    98
		HandleGetTrackNameResponse(err, aData);
20ac952a623c 201040_02
hgs
parents:
diff changeset
    99
		break;
20ac952a623c 201040_02
hgs
parents:
diff changeset
   100
	case ERemConGetArtist:
20ac952a623c 201040_02
hgs
parents:
diff changeset
   101
		HandleGetArtistResponse(err, aData);
20ac952a623c 201040_02
hgs
parents:
diff changeset
   102
		break;
20ac952a623c 201040_02
hgs
parents:
diff changeset
   103
	case ERemConGetTrackDuration:
20ac952a623c 201040_02
hgs
parents:
diff changeset
   104
		HandleGetTrackDurationResponse(err, aData);
20ac952a623c 201040_02
hgs
parents:
diff changeset
   105
		break;
20ac952a623c 201040_02
hgs
parents:
diff changeset
   106
#endif //SYMBIAN_ENABLE_TRACKINFO_BACKTOBACK_TEST_FUNCT
20ac952a623c 201040_02
hgs
parents:
diff changeset
   107
20ac952a623c 201040_02
hgs
parents:
diff changeset
   108
	default:
20ac952a623c 201040_02
hgs
parents:
diff changeset
   109
		break;
20ac952a623c 201040_02
hgs
parents:
diff changeset
   110
		}
20ac952a623c 201040_02
hgs
parents:
diff changeset
   111
	}
20ac952a623c 201040_02
hgs
parents:
diff changeset
   112
20ac952a623c 201040_02
hgs
parents:
diff changeset
   113
EXPORT_C void CRemConTrackInfoController::SetTrackName(TRequestStatus& aStatus, const TDesC& aTrackName, TUint& aNumRemotes)
20ac952a623c 201040_02
hgs
parents:
diff changeset
   114
	{
20ac952a623c 201040_02
hgs
parents:
diff changeset
   115
	LOG_FUNC
20ac952a623c 201040_02
hgs
parents:
diff changeset
   116
20ac952a623c 201040_02
hgs
parents:
diff changeset
   117
	// First copy aTrackName into a specific descriptor type to 
20ac952a623c 201040_02
hgs
parents:
diff changeset
   118
	// nail down the structure as we don't know what type of 
20ac952a623c 201040_02
hgs
parents:
diff changeset
   119
	// descriptor has been passed in. 
20ac952a623c 201040_02
hgs
parents:
diff changeset
   120
	
20ac952a623c 201040_02
hgs
parents:
diff changeset
   121
	// TBuf is restricted to 58 characters, this relates to the 
20ac952a623c 201040_02
hgs
parents:
diff changeset
   122
	// amount of available space in iOutData.
20ac952a623c 201040_02
hgs
parents:
diff changeset
   123
	TBuf<58> temp;
20ac952a623c 201040_02
hgs
parents:
diff changeset
   124
	temp.Copy(aTrackName);
20ac952a623c 201040_02
hgs
parents:
diff changeset
   125
20ac952a623c 201040_02
hgs
parents:
diff changeset
   126
	iOutData.Copy(KResultsPad()); //leaves 124 bytes of space
20ac952a623c 201040_02
hgs
parents:
diff changeset
   127
	
20ac952a623c 201040_02
hgs
parents:
diff changeset
   128
	TPckgBuf<TName> buf(temp);
20ac952a623c 201040_02
hgs
parents:
diff changeset
   129
	
20ac952a623c 201040_02
hgs
parents:
diff changeset
   130
	//Set buf to minimum required length
20ac952a623c 201040_02
hgs
parents:
diff changeset
   131
	//Size of iLength + Size of iMaxLength + Size of aTrackName
20ac952a623c 201040_02
hgs
parents:
diff changeset
   132
	//      4 Bytes   +        4 Bytes     +(Max. 58x2) 116 Bytes 
20ac952a623c 201040_02
hgs
parents:
diff changeset
   133
	//                                     = 124 Bytes Max Size
20ac952a623c 201040_02
hgs
parents:
diff changeset
   134
	buf.SetLength(sizeof(TUint) + sizeof(TUint) + temp.Size());
20ac952a623c 201040_02
hgs
parents:
diff changeset
   135
	iOutData.Append(buf);
20ac952a623c 201040_02
hgs
parents:
diff changeset
   136
20ac952a623c 201040_02
hgs
parents:
diff changeset
   137
	InterfaceSelector().Send(aStatus, 
20ac952a623c 201040_02
hgs
parents:
diff changeset
   138
		TUid::Uid(KRemConTrackInfoApiUid),
20ac952a623c 201040_02
hgs
parents:
diff changeset
   139
		(TUint)ERemConSetTrackName, 
20ac952a623c 201040_02
hgs
parents:
diff changeset
   140
		aNumRemotes,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   141
		ERemConCommand,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   142
		iOutData);
20ac952a623c 201040_02
hgs
parents:
diff changeset
   143
	}
20ac952a623c 201040_02
hgs
parents:
diff changeset
   144
20ac952a623c 201040_02
hgs
parents:
diff changeset
   145
20ac952a623c 201040_02
hgs
parents:
diff changeset
   146
//Included for internal testing purposes only. Should never be in a released product.
20ac952a623c 201040_02
hgs
parents:
diff changeset
   147
#ifdef SYMBIAN_ENABLE_TRACKINFO_BACKTOBACK_TEST_FUNCT
20ac952a623c 201040_02
hgs
parents:
diff changeset
   148
/**
20ac952a623c 201040_02
hgs
parents:
diff changeset
   149
Sends a 'get track name' command.
20ac952a623c 201040_02
hgs
parents:
diff changeset
   150
	
20ac952a623c 201040_02
hgs
parents:
diff changeset
   151
@param aStatus Used by RemCon to indicate completion of the send request.
20ac952a623c 201040_02
hgs
parents:
diff changeset
   152
@param aNumRemotes On success, will contain the number of remotes the 
20ac952a623c 201040_02
hgs
parents:
diff changeset
   153
command was sent to.
20ac952a623c 201040_02
hgs
parents:
diff changeset
   154
*/
20ac952a623c 201040_02
hgs
parents:
diff changeset
   155
EXPORT_C void CRemConTrackInfoController::GetTrackName(TRequestStatus& aStatus, TUint& aNumRemotes)
20ac952a623c 201040_02
hgs
parents:
diff changeset
   156
	{
20ac952a623c 201040_02
hgs
parents:
diff changeset
   157
	LOG_FUNC
20ac952a623c 201040_02
hgs
parents:
diff changeset
   158
20ac952a623c 201040_02
hgs
parents:
diff changeset
   159
	iOutData.Zero();
20ac952a623c 201040_02
hgs
parents:
diff changeset
   160
	
20ac952a623c 201040_02
hgs
parents:
diff changeset
   161
	InterfaceSelector().Send(aStatus, 
20ac952a623c 201040_02
hgs
parents:
diff changeset
   162
		TUid::Uid(KRemConTrackInfoApiUid),
20ac952a623c 201040_02
hgs
parents:
diff changeset
   163
		(TUint)ERemConGetTrackName, 
20ac952a623c 201040_02
hgs
parents:
diff changeset
   164
		aNumRemotes,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   165
		ERemConCommand,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   166
		iOutData);
20ac952a623c 201040_02
hgs
parents:
diff changeset
   167
	}
20ac952a623c 201040_02
hgs
parents:
diff changeset
   168
20ac952a623c 201040_02
hgs
parents:
diff changeset
   169
/**
20ac952a623c 201040_02
hgs
parents:
diff changeset
   170
Sends a 'get artist' command.
20ac952a623c 201040_02
hgs
parents:
diff changeset
   171
	
20ac952a623c 201040_02
hgs
parents:
diff changeset
   172
@param aStatus Used by RemCon to indicate completion of the send request.
20ac952a623c 201040_02
hgs
parents:
diff changeset
   173
@param aNumRemotes On success, will contain the number of remotes the 
20ac952a623c 201040_02
hgs
parents:
diff changeset
   174
command was sent to.
20ac952a623c 201040_02
hgs
parents:
diff changeset
   175
*/
20ac952a623c 201040_02
hgs
parents:
diff changeset
   176
EXPORT_C void CRemConTrackInfoController::GetArtist(TRequestStatus& aStatus, TUint& aNumRemotes)
20ac952a623c 201040_02
hgs
parents:
diff changeset
   177
	{
20ac952a623c 201040_02
hgs
parents:
diff changeset
   178
	LOG_FUNC
20ac952a623c 201040_02
hgs
parents:
diff changeset
   179
	
20ac952a623c 201040_02
hgs
parents:
diff changeset
   180
	iOutData.Zero();
20ac952a623c 201040_02
hgs
parents:
diff changeset
   181
	
20ac952a623c 201040_02
hgs
parents:
diff changeset
   182
	InterfaceSelector().Send(aStatus, 
20ac952a623c 201040_02
hgs
parents:
diff changeset
   183
		TUid::Uid(KRemConTrackInfoApiUid),
20ac952a623c 201040_02
hgs
parents:
diff changeset
   184
		(TUint)ERemConGetArtist, 
20ac952a623c 201040_02
hgs
parents:
diff changeset
   185
		aNumRemotes,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   186
		ERemConCommand,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   187
		iOutData);
20ac952a623c 201040_02
hgs
parents:
diff changeset
   188
	}
20ac952a623c 201040_02
hgs
parents:
diff changeset
   189
20ac952a623c 201040_02
hgs
parents:
diff changeset
   190
/**
20ac952a623c 201040_02
hgs
parents:
diff changeset
   191
Sends a 'get track duration' command.
20ac952a623c 201040_02
hgs
parents:
diff changeset
   192
	
20ac952a623c 201040_02
hgs
parents:
diff changeset
   193
@param aStatus Used by RemCon to indicate completion of the send request.
20ac952a623c 201040_02
hgs
parents:
diff changeset
   194
@param aNumRemotes On success, will contain the number of remotes the 
20ac952a623c 201040_02
hgs
parents:
diff changeset
   195
command was sent to.
20ac952a623c 201040_02
hgs
parents:
diff changeset
   196
*/	
20ac952a623c 201040_02
hgs
parents:
diff changeset
   197
EXPORT_C void CRemConTrackInfoController::GetTrackDuration(TRequestStatus& aStatus, TUint& aNumRemotes)
20ac952a623c 201040_02
hgs
parents:
diff changeset
   198
	{
20ac952a623c 201040_02
hgs
parents:
diff changeset
   199
	LOG_FUNC
20ac952a623c 201040_02
hgs
parents:
diff changeset
   200
	
20ac952a623c 201040_02
hgs
parents:
diff changeset
   201
	iOutData.Zero();
20ac952a623c 201040_02
hgs
parents:
diff changeset
   202
	
20ac952a623c 201040_02
hgs
parents:
diff changeset
   203
	InterfaceSelector().Send(aStatus, 
20ac952a623c 201040_02
hgs
parents:
diff changeset
   204
		TUid::Uid(KRemConTrackInfoApiUid),
20ac952a623c 201040_02
hgs
parents:
diff changeset
   205
		(TUint)ERemConGetTrackDuration, 
20ac952a623c 201040_02
hgs
parents:
diff changeset
   206
		aNumRemotes,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   207
		ERemConCommand,
20ac952a623c 201040_02
hgs
parents:
diff changeset
   208
		iOutData);	
20ac952a623c 201040_02
hgs
parents:
diff changeset
   209
	}
20ac952a623c 201040_02
hgs
parents:
diff changeset
   210
	
20ac952a623c 201040_02
hgs
parents:
diff changeset
   211
/**
20ac952a623c 201040_02
hgs
parents:
diff changeset
   212
Extracts the track name from the 'get track name' response data and calls 
20ac952a623c 201040_02
hgs
parents:
diff changeset
   213
the relevant mixin function on the observer.	
20ac952a623c 201040_02
hgs
parents:
diff changeset
   214
	
20ac952a623c 201040_02
hgs
parents:
diff changeset
   215
@param The data passed with the response.
20ac952a623c 201040_02
hgs
parents:
diff changeset
   216
*/	
20ac952a623c 201040_02
hgs
parents:
diff changeset
   217
void CRemConTrackInfoController::HandleGetTrackNameResponse(TInt aError, const TDesC8& aData)
20ac952a623c 201040_02
hgs
parents:
diff changeset
   218
	{
20ac952a623c 201040_02
hgs
parents:
diff changeset
   219
	LOG_FUNC	
20ac952a623c 201040_02
hgs
parents:
diff changeset
   220
	
20ac952a623c 201040_02
hgs
parents:
diff changeset
   221
	TPckgBuf<TName> buf;
20ac952a623c 201040_02
hgs
parents:
diff changeset
   222
	buf.Copy((aData.Mid(KRemConExtApi1ResultDataLength)));
20ac952a623c 201040_02
hgs
parents:
diff changeset
   223
	iObserver.MrcticoGetTrackNameResponse(aError, buf());
20ac952a623c 201040_02
hgs
parents:
diff changeset
   224
	}
20ac952a623c 201040_02
hgs
parents:
diff changeset
   225
20ac952a623c 201040_02
hgs
parents:
diff changeset
   226
/**
20ac952a623c 201040_02
hgs
parents:
diff changeset
   227
Extracts the artist from the 'get artist' response data and calls 
20ac952a623c 201040_02
hgs
parents:
diff changeset
   228
the relevant mixin function on the observer.	
20ac952a623c 201040_02
hgs
parents:
diff changeset
   229
	
20ac952a623c 201040_02
hgs
parents:
diff changeset
   230
@param The data passed with the response.
20ac952a623c 201040_02
hgs
parents:
diff changeset
   231
*/	
20ac952a623c 201040_02
hgs
parents:
diff changeset
   232
void CRemConTrackInfoController::HandleGetArtistResponse(TInt aError, const TDesC8& aData)
20ac952a623c 201040_02
hgs
parents:
diff changeset
   233
	{
20ac952a623c 201040_02
hgs
parents:
diff changeset
   234
	LOG_FUNC
20ac952a623c 201040_02
hgs
parents:
diff changeset
   235
20ac952a623c 201040_02
hgs
parents:
diff changeset
   236
	TPckgBuf<TName> buf;
20ac952a623c 201040_02
hgs
parents:
diff changeset
   237
	buf.Copy((aData.Mid(KRemConExtApi1ResultDataLength)));
20ac952a623c 201040_02
hgs
parents:
diff changeset
   238
	iObserver.MrcticoGetArtistResponse(aError, buf());
20ac952a623c 201040_02
hgs
parents:
diff changeset
   239
	}
20ac952a623c 201040_02
hgs
parents:
diff changeset
   240
20ac952a623c 201040_02
hgs
parents:
diff changeset
   241
/**
20ac952a623c 201040_02
hgs
parents:
diff changeset
   242
Extracts the track duration from the 'get track duration' response data and calls 
20ac952a623c 201040_02
hgs
parents:
diff changeset
   243
the relevant mixin function on the observer.	
20ac952a623c 201040_02
hgs
parents:
diff changeset
   244
	
20ac952a623c 201040_02
hgs
parents:
diff changeset
   245
@param The data passed with the response.
20ac952a623c 201040_02
hgs
parents:
diff changeset
   246
*/	
20ac952a623c 201040_02
hgs
parents:
diff changeset
   247
void CRemConTrackInfoController::HandleGetTrackDurationResponse(TInt aError, const TDesC8& aData)
20ac952a623c 201040_02
hgs
parents:
diff changeset
   248
	{
20ac952a623c 201040_02
hgs
parents:
diff changeset
   249
	LOG_FUNC	
20ac952a623c 201040_02
hgs
parents:
diff changeset
   250
	
20ac952a623c 201040_02
hgs
parents:
diff changeset
   251
	TPckgBuf<TInt64> buf;
20ac952a623c 201040_02
hgs
parents:
diff changeset
   252
	buf.Copy((aData.Mid(KRemConExtApi1ResultDataLength)));
20ac952a623c 201040_02
hgs
parents:
diff changeset
   253
	TTime duration(buf());
20ac952a623c 201040_02
hgs
parents:
diff changeset
   254
	iObserver.MrcticoGetTrackDurationResponse(aError, duration);
20ac952a623c 201040_02
hgs
parents:
diff changeset
   255
	}
20ac952a623c 201040_02
hgs
parents:
diff changeset
   256
20ac952a623c 201040_02
hgs
parents:
diff changeset
   257
#pragma message ("The remote control Track Info extension API is being built with the extra back to back test code functionality included.  This should only happen in DEBUG build and never be released.")
20ac952a623c 201040_02
hgs
parents:
diff changeset
   258
20ac952a623c 201040_02
hgs
parents:
diff changeset
   259
#endif //SYMBIAN_ENABLE_TRACKINFO_BACKTOBACK_TEST_FUNCT