mmlibs/mmfw/src/Client/Video/mmfclientvideoplayer.cpp
author hgs
Tue, 02 Nov 2010 12:28:51 +0000
changeset 6 fe9d1bf55678
parent 0 b8ed18f6c07b
permissions -rw-r--r--
2010wk46_02
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
     1
// Copyright (c) 2002-2009 Nokia Corporation and/or its subsidiary(-ies).
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
     2
// All rights reserved.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
     3
// This component and the accompanying materials are made available
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
     4
// under the terms of "Eclipse Public License v1.0"
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
     5
// which accompanies this distribution, and is available
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
     6
// at the URL "http://www.eclipse.org/legal/epl-v10.html".
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
     7
//
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
     8
// Initial Contributors:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
     9
// Nokia Corporation - initial contribution.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    10
//
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    11
// Contributors:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    12
//
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    13
// Description:
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    14
//
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    15
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    16
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    17
#include <mmf/common/mmfstandardcustomcommands.h>  
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    18
#include <mmf/common/mmfvideo.h>
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    19
#include <mmf/common/mmfpaniccodes.h>
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    20
#include <mmf/server/mmfdes.h>
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    21
#include <mmf/server/mmffile.h>
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    22
#include <videoplayer.h>
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    23
#include "mmfvideocallback.h"
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    24
#include "VideoPlayerBody.h"
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    25
#include "mmfvideopaniccodes.h"
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    26
#include "mmfclientvideocommon.h"
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    27
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    28
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    29
void Panic(TInt aPanicCode)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    30
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    31
	_LIT(KMMFMediaClientVideoPanicCategory, "MMFVideoClient");
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    32
	User::Panic(KMMFMediaClientVideoPanicCategory, aPanicCode);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    33
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    34
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    35
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    36
Constructs and initialises a new instance of the video player utility.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    37
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    38
This function leaves if the video player utility object cannot be created.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    39
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    40
@param  aObserver
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    41
        A client class to receive notifications from the video player.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    42
@param  aPriority
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    43
        The Priority Value - this client's relative priority. This is a value between EMdaPriorityMin and 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    44
        EMdaPriorityMax and represents a relative priority. A higher value indicates a more important request.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    45
@param  aPref
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    46
        The Priority Preference - an additional audio policy parameter. The suggested default is 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    47
        EMdaPriorityPreferenceNone. Further values are given by TMdaPriorityPreference, and additional 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    48
        values may be supported by given phones and/or platforms, but should not be depended upon by 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    49
        portable code.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    50
@param  aWs
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    51
        The window server session id.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    52
@param  aScreenDevice
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    53
        The software device screen.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    54
@param  aWindow
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    55
        The display window.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    56
@param  aScreenRect
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    57
        The dimensions of the display window.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    58
@param  aClipRect
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    59
        The area of the video clip to display in the window.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    60
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    61
@return A pointer to the new video player utility object.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    62
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    63
@since 7.0s
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    64
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    65
Note: The Priority Value and Priority Preference are used primarily when deciding what to do when
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    66
several audio clients attempt to play or record simultaneously. In addition to the Priority Value and Preference, 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    67
the adaptation may consider other parameters such as the SecureId and Capabilities of the client process. 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    68
Whatever, the decision  as to what to do in such situations is up to the audio adaptation, and may
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    69
vary between different phones. Portable applications are advised not to assume any specific behaviour. 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    70
*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    71
EXPORT_C CVideoPlayerUtility* CVideoPlayerUtility::NewL(MVideoPlayerUtilityObserver& aObserver,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    72
														TInt aPriority,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    73
														TInt aPref,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    74
														RWsSession& aWs,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    75
														CWsScreenDevice& aScreenDevice,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    76
														RWindowBase& aWindow,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    77
														const TRect& aScreenRect,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    78
														const TRect& aClipRect)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    79
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    80
	CVideoPlayerUtility* s = new(ELeave) CVideoPlayerUtility();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    81
	CleanupStack::PushL(s);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    82
	s->iBody = CBody::NewL(s, aObserver, aPriority, aPref, aWs, aScreenDevice,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    83
												aWindow, aScreenRect, aClipRect);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    84
	CleanupStack::Pop();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    85
	return s;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    86
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    87
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    88
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    89
Destructor. Closes any open video clips and frees any resources held by the Video Player.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    90
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    91
@since  7.0s
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    92
*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    93
CVideoPlayerUtility::~CVideoPlayerUtility()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    94
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    95
	delete iBody;
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    96
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    97
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    98
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
    99
Opens a video clip from a file.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   100
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   101
This function opens a video clip from a file using an optionally specified plugin. If no controller
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   102
plugin is specified, this function searches through a list of all available plugins and attempts to 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   103
use each one until successful or the end of the list is reached.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   104
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   105
Once the opening of the video clip is complete, successfully or otherwise, the callback function 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   106
MVideoPlayerUtilityObserver::MvpuoOpenComplete() is called.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   107
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   108
This function leaves if errors are encountered opening the specified video clip file, or in initialising a 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   109
specified/unspecified controller plugin.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   110
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   111
This function can leave with one of the specified error codes. Most open failures
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   112
will however be reported through the MVideoPlayerUtilityObserver interface.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   113
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   114
From Symbian release v9.5 onwards, this function will enable graphics surface use if the controller supports it. 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   115
If this function is called through an instance of the derived class CVideoPlayerUtility2 and the controller doesn't support graphics surfaces, 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   116
it fails with KErrNotSupported.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   117
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   118
@param  aFileName
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   119
        The full path name of the file containing the video data.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   120
@param  aControllerUid
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   121
        If specified, it will force the video player to use the
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   122
		controller with the given UID.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   123
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   124
@since  7.0s
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   125
*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   126
EXPORT_C void CVideoPlayerUtility::OpenFileL(const TDesC& aFileName, TUid aControllerUid)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   127
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   128
	iBody->OpenFileL(aFileName, aControllerUid);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   129
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   130
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   131
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   132
Opens a video clip from a file.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   133
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   134
This function opens a video clip from a file using an optionally specified plugin. If no controller
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   135
plugin is specified, this function searches through a list of all available plugins and attempts to 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   136
use each one until successful or the end of the list is reached.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   137
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   138
Once the opening of the video clip is complete, successfully or otherwise, the callback function 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   139
MVideoPlayerUtilityObserver::MvpuoOpenComplete() is called.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   140
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   141
This function leaves if errors are encountered opening the specified video clip file, or in initialising a 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   142
specified/unspecified controller plugin.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   143
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   144
This function can leave with one of the specified error codes. Most open failures
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   145
will however be reported through the MVideoPlayerUtilityObserver interface.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   146
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   147
From Symbian release v9.5 onwards, this function will enable graphics surface use if the controller supports it. 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   148
If this function is called through an instance of the derived class CVideoPlayerUtility2 and the controller doesn't support graphics surfaces, 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   149
it fails with KErrNotSupported.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   150
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   151
@param  aFile
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   152
        An open handle to a file containing the video clip
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   153
@param  aControllerUid
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   154
        If specified, it will force the video player to use the
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   155
		controller with the given UID.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   156
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   157
@since  7.0s
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   158
*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   159
EXPORT_C void CVideoPlayerUtility::OpenFileL(const RFile& aFile, TUid aControllerUid)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   160
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   161
	iBody->OpenFileL(aFile, aControllerUid);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   162
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   163
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   164
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   165
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   166
Opens a video clip from a file.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   167
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   168
This function opens a video clip from a file using an optionally specified plugin. If no controller
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   169
plugin is specified, this function searches through a list of all available plugins and attempts to 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   170
use each one until successful or the end of the list is reached.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   171
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   172
Once the opening of the video clip is complete, successfully or otherwise, the callback function 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   173
MVideoPlayerUtilityObserver::MvpuoOpenComplete() is called.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   174
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   175
This function leaves if errors are encountered opening the specified video clip file, or in initialising a 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   176
specified/unspecified controller plugin.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   177
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   178
This function can leave with one of the specified error codes. Most open failures
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   179
will however be reported through the MVideoPlayerUtilityObserver interface.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   180
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   181
From Symbian release v9.5 onwards, this function will enable graphics surface use if the controller supports it. 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   182
If this function is called through an instance of the derived class CVideoPlayerUtility2 and the controller doesn't support graphics surfaces, 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   183
it fails with KErrNotSupported.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   184
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   185
@param  aSource
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   186
        A filename or an open handle to a file containing the video clip
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   187
@param  aControllerUid
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   188
        If specified, it will force the video player to use the
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   189
		controller with the given UID.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   190
*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   191
EXPORT_C void CVideoPlayerUtility::OpenFileL(const TMMSource& aSource, TUid aControllerUid)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   192
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   193
	iBody->OpenFileL(aSource, aControllerUid);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   194
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   195
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   196
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   197
Opens a video clip contained in a descriptor.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   198
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   199
This function opens a video clip contained as binary data in a descriptor using an optionally specified 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   200
plugin. If no controller plugin is specified, this function searches through a list of all available 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   201
plugins and attempts to use each one until successful or the end of the list is reached.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   202
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   203
Once the opening of the video clip is complete, successfully or otherwise, the callback function 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   204
MVideoPlayerUtilityObserver::MvpuoOpenComplete() is called.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   205
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   206
This function can leave with one of the specified error codes. Most open failures will however be
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   207
reported through the interface.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   208
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   209
From Symbian release v9.5 onwards, this function will enable graphics surface use if the controller supports it. 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   210
If this function is called through an instance of the derived class CVideoPlayerUtility2 and the controller doesn't support graphics surfaces, 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   211
it fails with KErrNotSupported.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   212
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   213
@param  aDescriptor
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   214
        The descriptor containing the video clip
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   215
@param  aControllerUid
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   216
        If specified, it will force the video player to use the
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   217
        controller with the given UID.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   218
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   219
@since  7.0s
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   220
*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   221
EXPORT_C void CVideoPlayerUtility::OpenDesL(const TDesC8& aDescriptor, TUid aControllerUid)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   222
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   223
	iBody->OpenDesL(aDescriptor, aControllerUid);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   224
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   225
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   226
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   227
Opens a video clip from a URL.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   228
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   229
This function opens a video clip stored at a specified URL and identified by a MIME type. In addition
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   230
a plugin can be specified if necessary. If no controller plugin is specified, this function searches 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   231
through a list of all available plugins and attempts to use each one until successful or the end 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   232
of the list is reached.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   233
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   234
Once the opening of the video clip is complete, successfully or otherwise, the callback function 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   235
MVideoPlayerUtilityObserver::MvpuoOpenComplete() is called.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   236
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   237
This function can leave with one of the specified error codes. Most open failures
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   238
will however be reported through the MVideoPlayerUtilityObserver interface.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   239
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   240
From Symbian release v9.5 onwards, this function will enable graphics surface use if the controller supports it. 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   241
If this function is called through an instance of the derived class CVideoPlayerUtility2 and the controller doesn't support graphics surfaces, 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   242
it fails with KErrNotSupported.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   243
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   244
@param  aUrl
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   245
        The URL of the video clip to open.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   246
@param  aIapId
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   247
        The Id of the internet access point to use
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   248
@param  aMimeType
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   249
        The MIME type associated with this video clip. This is
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   250
        used to determine the format of the video clip.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   251
@param  aControllerUid
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   252
        If specified, it will force the video player to use the controller with the given Uid.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   253
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   254
@since  7.0s
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   255
*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   256
EXPORT_C void CVideoPlayerUtility::OpenUrlL(const TDesC& aUrl, TInt aIapId, const TDesC8& aMimeType, TUid aControllerUid)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   257
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   258
	iBody->OpenUrlL(aUrl, aIapId, aMimeType, aControllerUid);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   259
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   260
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   261
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   262
Closes the video clip.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   263
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   264
@since 7.0s
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   265
*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   266
EXPORT_C void CVideoPlayerUtility::Close()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   267
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   268
	iBody->Close();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   269
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   270
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   271
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   272
Begins playback of the initialised video sample at the current volume and priority levels.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   273
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   274
When playing of the video sample is complete, successfully or otherwise, the callback function
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   275
MVideoPlayerUtilityObserver::MvpuoPlayComplete() is called.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   276
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   277
@since 7.0s
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   278
*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   279
EXPORT_C void CVideoPlayerUtility::Play()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   280
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   281
	iBody->Play();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   282
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   283
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   284
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   285
Begins playback of the initialised video sample at the specified start and end points.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   286
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   287
When playing of the video sample is complete, successfully or otherwise, the callback function
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   288
MVideoPlayerUtilityObserver::MvpuoPlayComplete() is called.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   289
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   290
@param  aStartTime
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   291
        The point at which to start playback.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   292
@param  aEndTime
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   293
        The point at which to terminate playback.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   294
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   295
@since 7.0s
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   296
*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   297
EXPORT_C void CVideoPlayerUtility::Play(const TTimeIntervalMicroSeconds& aStartTime, const TTimeIntervalMicroSeconds& aEndTime)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   298
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   299
	iBody->Play(aStartTime, aEndTime);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   300
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   301
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   302
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   303
Stops playback of the video sample as soon as is possible. 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   304
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   305
If the video sample is playing, playback is stopped as soon as possible.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   306
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   307
If playback is already complete, this function has no effect.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   308
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   309
The position is reset to the beginning of the file.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   310
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   311
@return An error code indicating if the function call was successful. KErrNone on success, otherwise
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   312
        another of the system-wide error codes.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   313
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   314
@since  7.0s
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   315
*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   316
EXPORT_C TInt CVideoPlayerUtility::Stop()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   317
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   318
	return iBody->Stop();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   319
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   320
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   321
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   322
Video playback is paused. The current position is maintained and playback can be
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   323
resumed by calling Play.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   324
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   325
@since 7.0s
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   326
*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   327
EXPORT_C void CVideoPlayerUtility::PauseL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   328
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   329
	iBody->PauseL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   330
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   331
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   332
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   333
Sets the playback volume for the audio track of the video clip.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   334
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   335
The volume can be changed before or during playback and is effective immediately. The volume can
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   336
be set to any value between zero (mute) and the maximum permissible volume
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   337
(determined using MaxVolume()).
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   338
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   339
To determine if the current video clip contains an audio track, use AudioEnabledL().
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   340
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   341
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   342
@param  aVolume
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   343
        The volume, between 0 and MaxVolume().
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   344
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   345
@since 7.0s
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   346
*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   347
EXPORT_C void CVideoPlayerUtility::SetVolumeL(TInt aVolume)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   348
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   349
	iBody->SetVolumeL(aVolume);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   350
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   351
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   352
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   353
//
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   354
// Sends custom command to the plugin controller.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   355
// Passes handle and size of the drawable window.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   356
//
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   357
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   358
Sets the display window. This is used to provide the video controller with an area of
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   359
the display to render the current video frame.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   360
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   361
From Symbian release 9.5 onwards this method is not supported when called on an instance of CVideoPlayerUtility2, and will always 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   362
leave with KErrNotSupported.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   363
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   364
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   365
@param  aWs
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   366
        The window server session ID.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   367
@param  aScreenDevice
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   368
        The software device screen.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   369
@param  aWindow
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   370
        The window to display.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   371
@param  aScreenRect
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   372
        The dimensions of the display window.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   373
@param  aClipRect
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   374
        The area of the video clip to display in the window.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   375
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   376
@since 7.0s
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   377
*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   378
EXPORT_C void CVideoPlayerUtility::SetDisplayWindowL(RWsSession& aWs, CWsScreenDevice& aScreenDevice,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   379
													 RWindowBase& aWindow, const TRect& aScreenRect,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   380
													 const TRect& aClipRect)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   381
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   382
	iBody->SetDisplayWindowL(aWs, aScreenDevice, aWindow, aScreenRect, aClipRect);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   383
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   384
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   385
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   386
Returns the video frame rate in frames/second.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   387
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   388
@return The video frame rate (frames/second).
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   389
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   390
@since  7.0s
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   391
*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   392
EXPORT_C TReal32 CVideoPlayerUtility::VideoFrameRateL() const
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   393
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   394
	return iBody->VideoFrameRateL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   395
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   396
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   397
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   398
Gets the video frame size.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   399
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   400
@param  aSize
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   401
        The video frame size
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   402
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   403
@since 7.0s
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   404
*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   405
EXPORT_C void CVideoPlayerUtility::VideoFrameSizeL(TSize& aSize) const
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   406
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   407
	iBody->VideoFrameSizeL(aSize);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   408
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   409
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   410
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   411
Returns the current playback volume for the audio track of the video clip.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   412
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   413
@return A value between 0 (mute) and the maximum volume returned by MaxVolume().
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   414
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   415
@since  7.0s
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   416
*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   417
EXPORT_C TInt CVideoPlayerUtility::Volume() const
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   418
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   419
	return iBody->Volume();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   420
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   421
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   422
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   423
Sets the current playback balance for the audio track of the video clip.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   424
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   425
The balance can be any value between KMMFBalanceMaxLeft and KMMFBalanceMaxRight,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   426
the default value being KMMFBalanceCenter.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   427
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   428
@param  aBalance
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   429
        The balance value to set.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   430
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   431
@since 7.0s
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   432
*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   433
EXPORT_C void CVideoPlayerUtility::SetBalanceL(TInt aBalance)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   434
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   435
	iBody->SetBalanceL(aBalance);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   436
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   437
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   438
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   439
Returns the current balance setting for the audio track of the video clip.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   440
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   441
@return A balance value between KMMFBalanceMaxLeft and KMMFBalanceMaxRight.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   442
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   443
@since  7.0s
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   444
*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   445
EXPORT_C TInt CVideoPlayerUtility::Balance() const
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   446
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   447
	return iBody->Balance();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   448
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   449
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   450
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   451
Returns the video format's MIME type.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   452
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   453
@return The video clip's MIME type.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   454
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   455
@since  7.0s
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   456
@see    NumberOfMetaDataEntriesL
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   457
*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   458
EXPORT_C const TDesC8& CVideoPlayerUtility::VideoFormatMimeType() const
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   459
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   460
	return iBody->VideoFormatMimeType();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   461
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   462
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   463
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   464
Returns the number of meta data entries associated with this clip.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   465
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   466
@return The number of meta data entries.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   467
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   468
@since 7.0s
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   469
*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   470
EXPORT_C TInt CVideoPlayerUtility::NumberOfMetaDataEntriesL() const
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   471
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   472
	return iBody->NumberOfMetaDataEntriesL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   473
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   474
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   475
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   476
Returns a meta data entry from the clip.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   477
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   478
@param  aMetaDataIndex
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   479
        The index of the meta data entry to retrieve.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   480
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   481
@return The metadata entry requested.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   482
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   483
@since  7.0s
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   484
@see    NumberOfMetaDataEntriesL
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   485
*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   486
EXPORT_C CMMFMetaDataEntry* CVideoPlayerUtility::MetaDataEntryL(TInt aMetaDataIndex) const
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   487
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   488
	return iBody->MetaDataEntryL(aMetaDataIndex);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   489
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   490
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   491
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   492
Sets the playback priority. 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   493
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   494
This is used to arbitrate between multiple objects simultaneously trying to accesses
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   495
the sound hardware.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   496
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   497
@param  aPriority
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   498
        The Priority Value.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   499
@param  aPref
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   500
        The Priority Preference.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   501
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   502
@see CVideoPlayerUtility::NewL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   503
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   504
@since 7.0s
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   505
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   506
*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   507
EXPORT_C void CVideoPlayerUtility::SetPriorityL(TInt aPriority, TInt aPref)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   508
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   509
	iBody->SetPriorityL(aPriority, aPref);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   510
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   511
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   512
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   513
Get the current playback priority. This is used to arbitrate between simultaneous accesses of
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   514
the sound hardware.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   515
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   516
@param  aPriority
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   517
        On return, contains the priority level, EMdaPriorityMin client can be interrupted by any
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   518
        other client, EMdaPriorityNormal client can only be interrupted by a client with a higher 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   519
        priority or EMdaPriorityMax client cannot be interrupted by other clients.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   520
@param  aPref
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   521
        On return, contains the time and quality preferences, enumerated in TMdaPriorityPreference.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   522
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   523
@since 7.0s
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   524
*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   525
EXPORT_C void CVideoPlayerUtility::PriorityL(TInt& aPriority, TMdaPriorityPreference& aPref) const 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   526
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   527
	iBody->PriorityL(aPriority, aPref);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   528
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   529
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   530
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   531
Sets the position within the video clip from where to start playback.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   532
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   533
@param  aPosition
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   534
        Position from start of clip in microseconds.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   535
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   536
@since 7.0s
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   537
*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   538
EXPORT_C void CVideoPlayerUtility::SetPositionL(const TTimeIntervalMicroSeconds& aPosition)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   539
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   540
	iBody->SetPositionL(aPosition);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   541
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   542
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   543
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   544
Returns the duration of video clip in mircoseconds.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   545
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   546
@return The duration of clip in microseconds.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   547
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   548
@since  7.0s
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   549
*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   550
EXPORT_C TTimeIntervalMicroSeconds CVideoPlayerUtility::DurationL() const
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   551
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   552
	return iBody->DurationL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   553
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   554
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   555
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   556
Returns the current playback position.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   557
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   558
@return The current position from the start of the clip in microseconds.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   559
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   560
@since  7.0s
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   561
*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   562
EXPORT_C TTimeIntervalMicroSeconds CVideoPlayerUtility::PositionL() const
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   563
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   564
	return iBody->PositionL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   565
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   566
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   567
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   568
Returns an integer representing the maximum volume that the audio track can support.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   569
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   570
This is the maximum value that can be passed to SetVolumeL(). This value is platform 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   571
independent, but is always greater than or equal to one.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   572
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   573
@return The naximum playback volume.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   574
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   575
@since  7.0s
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   576
*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   577
EXPORT_C TInt CVideoPlayerUtility::MaxVolume() const
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   578
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   579
	return iBody->MaxVolume();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   580
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   581
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   582
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   583
Gets the current frame. The current frame is requested, and will be sent to
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   584
the client asynchrynously via the MvpuoFrameReady callback.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   585
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   586
@param  aDisplayMode
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   587
        The display mode for the retrieved frame.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   588
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   589
@since  7.0s
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   590
*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   591
EXPORT_C void CVideoPlayerUtility::GetFrameL(TDisplayMode aDisplayMode)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   592
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   593
	iBody->GetFrameL(aDisplayMode);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   594
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   595
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   596
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   597
Gets the current frame. The current frame is requested, and will be sent to
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   598
the client asynchrynously via the MvpuoFrameReady callback.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   599
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   600
@param  aDisplayMode
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   601
        The display mode for the retrieved frame.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   602
@param  aIntent
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   603
        The DRM Intent to pass to the controller.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   604
*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   605
EXPORT_C void CVideoPlayerUtility::GetFrameL(TDisplayMode aDisplayMode, ContentAccess::TIntent aIntent)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   606
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   607
	iBody->GetFrameL(aDisplayMode, ETrue, aIntent);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   608
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   609
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   610
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   611
Returns the video bit rate.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   612
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   613
@return The video bit rate in bits/second.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   614
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   615
@since  7.0s
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   616
*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   617
EXPORT_C TInt CVideoPlayerUtility::VideoBitRateL() const
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   618
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   619
	return iBody->VideoBitRateL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   620
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   621
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   622
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   623
Returns the audio bit rate in bits/second.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   624
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   625
@return The audio bit rate (bits/second).
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   626
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   627
@since  7.0s
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   628
*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   629
EXPORT_C TInt CVideoPlayerUtility::AudioBitRateL() const
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   630
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   631
	return iBody->AudioBitRateL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   632
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   633
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   634
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   635
Returns whether the current clip has an audio stream and audio playback
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   636
is enabled. This method will return EFalse if the clip does no have an
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   637
audio track or if audio playback has been disabled with
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   638
SetAudioEnabledL().
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   639
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   640
@return ETrue if an audio track is present and audio playback is
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   641
        enabled, otherwise EFalse.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   642
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   643
@since  7.0s
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   644
*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   645
EXPORT_C TBool CVideoPlayerUtility::AudioEnabledL() const
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   646
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   647
	return iBody->AudioEnabledL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   648
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   649
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   650
EXPORT_C void Reserved2()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   651
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   652
	// reserved function replacing removed VideoTypeL() method
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   653
	// this function should never be called hence generate a
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   654
	// panic with code ENoVideoTypeL
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   655
	Panic( ENoVideoTypeL );
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   656
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   657
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   658
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   659
Returns the codec used for the audio component of the video clip.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   660
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   661
@return The four character code representing the audio codec.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   662
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   663
@since  7.0s
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   664
*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   665
EXPORT_C TFourCC CVideoPlayerUtility::AudioTypeL() const
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   666
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   667
	return iBody->AudioTypeL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   668
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   669
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   670
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   671
Gets the progress of video clip loading/rebuffering.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   672
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   673
@param aPercentageProgress
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   674
       The percentage of loading/rebuffering complete. The parameter
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   675
       is zero if loading has not begun and 100 if loading has already completed.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   676
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   677
@since 7.0s
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   678
*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   679
EXPORT_C void CVideoPlayerUtility::GetVideoLoadingProgressL(TInt& aPercentageProgress)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   680
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   681
	iBody->GetVideoLoadingProgressL(aPercentageProgress);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   682
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   683
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   684
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   685
Sends a synchronous custom command to the controller.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   686
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   687
@param  aDestination
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   688
        The destination of the message, consisting of the UID of
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   689
        the interface of this message.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   690
@param  aFunction
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   691
        The function number to indicate which function is to be called
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   692
        on the interface defined in the aDestination parameter.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   693
@param  aDataTo1
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   694
        A reference to the first chunk of data to be copied to the controller
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   695
        framework. The exact contents of the data are dependent on the
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   696
        interface being called.  Can be KNullDesC8.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   697
@param  aDataTo2
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   698
        A reference to the second chunk of data to be copied to the controller
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   699
        framework. The exact contents of the data are dependent on the
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   700
        interface being called.  Can be KNullDesC8.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   701
@param  aDataFrom
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   702
        A reference to an area of memory to which the controller framework will
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   703
        write any data to be passed back to the client.  Can't be KNullDesC8.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   704
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   705
@return The result of the request. The exact range of values is dependent on the interface.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   706
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   707
@since  7.0s
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   708
*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   709
EXPORT_C TInt CVideoPlayerUtility::CustomCommandSync(const TMMFMessageDestinationPckg& aDestination, TInt aFunction, const TDesC8& aDataTo1, const TDesC8& aDataTo2, TDes8& aDataFrom)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   710
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   711
	return iBody->CustomCommandSync(aDestination, aFunction, aDataTo1, aDataTo2, aDataFrom);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   712
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   713
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   714
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   715
Sends a synchronous custom command to the controller.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   716
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   717
@param  aDestination
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   718
        The destination of the message, consisting of the uid of
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   719
        the interface of this message.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   720
@param  aFunction
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   721
        The function number to indicate which function is to be called
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   722
        on the interface defined in the aDestination parameter.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   723
@param  aDataTo1
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   724
        A reference to the first chunk of data to be copied to the controller
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   725
        framework. The exact contents of the data are dependent on the
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   726
        interface being called.  Can be KNullDesC8.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   727
@param  aDataTo2
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   728
        A reference to the second chunk of data to be copied to the controller
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   729
        framework. The exact contents of the data are dependent on the
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   730
        interface being called.  Can be KNullDesC8.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   731
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   732
@return The result of the request. The exact range of values is dependent on the interface.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   733
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   734
@since  7.0s
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   735
*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   736
EXPORT_C TInt CVideoPlayerUtility::CustomCommandSync(const TMMFMessageDestinationPckg& aDestination, TInt aFunction, const TDesC8& aDataTo1, const TDesC8& aDataTo2)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   737
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   738
	return iBody->CustomCommandSync(aDestination, aFunction, aDataTo1, aDataTo2);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   739
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   740
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   741
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   742
Sends an asynchronous custom command to the controller.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   743
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   744
Note: 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   745
This method will return immediately.  The RunL of the active object owning the
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   746
aStatus parameter will be called when the command is completed by the
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   747
controller framework.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   748
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   749
@param  aDestination
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   750
        The destination of the message, consisting of the uid of
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   751
        the interface of this message.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   752
@param  aFunction
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   753
        The function number to indicate which function is to be called
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   754
        on the interface defined in the aDestination parameter.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   755
@param  aDataTo1
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   756
        A reference to the first chunk of data to be copied to the controller
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   757
        framework. The exact contents of the data are dependent on the
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   758
        interface being called.  Can be KNullDesC8.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   759
@param  aDataTo2
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   760
        A reference to the second chunk of data to be copied to the controller
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   761
        framework. The exact contents of the data are dependent on the
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   762
        interface being called.  Can be KNullDesC8.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   763
@param  aDataFrom
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   764
        A reference to an area of memory to which the controller framework will
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   765
        write any data to be passed back to the client.  Can't be KNullDesC8.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   766
@param  aStatus
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   767
        The TRequestStatus of an active object.  This will contain the
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   768
        result of the request on completion.  The exact range of
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   769
        result values is dependent on the interface.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   770
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   771
@since  7.0s
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   772
*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   773
EXPORT_C void CVideoPlayerUtility::CustomCommandAsync(const TMMFMessageDestinationPckg& aDestination, TInt aFunction, const TDesC8& aDataTo1, const TDesC8& aDataTo2, TDes8& aDataFrom, TRequestStatus& aStatus)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   774
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   775
	iBody->CustomCommandAsync(aDestination, aFunction, aDataTo1, aDataTo2, aDataFrom, aStatus);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   776
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   777
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   778
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   779
Send a asynchronous custom command to the controller.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   780
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   781
Note: 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   782
This method will return immediately.  The RunL of the active object owning the
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   783
aStatus parameter will be called when the command is completed by the
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   784
controller framework.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   785
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   786
@param  aDestination
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   787
        The destination of the message, consisting of the uid of
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   788
        the interface of this message.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   789
@param  aFunction
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   790
        The function number to indicate which function is to be called
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   791
        on the interface defined in the aDestination parameter.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   792
@param  aDataTo1
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   793
        A reference to the first chunk of data to be copied to the controller
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   794
        framework. The exact contents of the data are dependent on the
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   795
        interface being called.  Can be KNullDesC8.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   796
@param  aDataTo2
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   797
        A reference to the second chunk of data to be copied to the controller
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   798
        framework. The exact contents of the data are dependent on the
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   799
        interface being called.  Can be KNullDesC8.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   800
@param  aStatus
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   801
        The TRequestStatus of an active object.  This will contain the
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   802
        result of the request on completion.  The exact range of
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   803
        result values is dependent on the interface.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   804
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   805
@since  7.0s
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   806
*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   807
EXPORT_C void CVideoPlayerUtility::CustomCommandAsync(const TMMFMessageDestinationPckg& aDestination, TInt aFunction, const TDesC8& aDataTo1, const TDesC8& aDataTo2, TRequestStatus& aStatus)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   808
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   809
	iBody->CustomCommandAsync(aDestination, aFunction, aDataTo1, aDataTo2, aStatus);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   810
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   811
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   812
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   813
Register to receive notifications of video clip loading/rebuffering.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   814
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   815
When a video clip is being streamed in, it may require rebuffering from time to time. This function 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   816
"switches on" callbacks that report the status of the rebuffering.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   817
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   818
The two callbacks that can be sent are MVideoLoadingObserver::MvloLoadingStarted() and 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   819
MVideoLoadingObserver::MvloLoadingComplete().
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   820
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   821
@param  aCallback
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   822
        The object to receive video loading notifications.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   823
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   824
@since 7.0s
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   825
*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   826
EXPORT_C void CVideoPlayerUtility::RegisterForVideoLoadingNotification(MVideoLoadingObserver& aCallback)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   827
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   828
	iBody->RegisterForVideoLoadingNotification(aCallback);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   829
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   830
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   831
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   832
Sets the video frame rate.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   833
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   834
@param  aFramesPerSecond
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   835
        The number of frames per second to request.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   836
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   837
@since 7.0s
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   838
*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   839
EXPORT_C void CVideoPlayerUtility::SetVideoFrameRateL(TReal32 aFramesPerSecond)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   840
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   841
	iBody->SetVideoFrameRateL(aFramesPerSecond);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   842
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   843
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   844
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   845
Requests the video controller to redraw the current frame.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   846
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   847
@since 7.0s
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   848
*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   849
EXPORT_C void CVideoPlayerUtility::RefreshFrameL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   850
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   851
	iBody->RefreshFrameL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   852
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   853
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   854
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   855
Rotates the video image on the screen.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   856
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   857
@param  aRotation
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   858
        The desired rotation to apply in 90 degree increments.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   859
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   860
@see    RotationL
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   861
@since  7.0s
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   862
*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   863
EXPORT_C void CVideoPlayerUtility::SetRotationL(TVideoRotation aRotation)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   864
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   865
	iBody->SetRotationL(aRotation);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   866
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   867
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   868
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   869
Query the rotation that is currently applied to the video image.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   870
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   871
@return The applied rotation
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   872
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   873
@since 7.0s
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   874
@see   SetRotationL
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   875
*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   876
EXPORT_C TVideoRotation CVideoPlayerUtility::RotationL() const
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   877
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   878
	return iBody->RotationL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   879
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   880
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   881
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   882
Scales the video image to a specified percentage of its original size.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   883
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   884
@param  aWidthPercentage
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   885
        The percentage (100 = original size) to be used to scale the width of the video image
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   886
@param  aHeightPercentage
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   887
        The percentage (100 = original size) to be used to scale the height of the video image. 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   888
        If this is not equal to aWidthPercentage then the image may be distorted.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   889
@param  aAntiAliasFiltering
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   890
        A boolean specifying if anti-aliasing should be used. True if anti-aliasing filtering 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   891
        should be used.  If the plugin does not	support this kind of processing, 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   892
        this value will be ignored.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   893
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   894
@since  7.0s
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   895
@see    GetScaleFactorL
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   896
*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   897
EXPORT_C void CVideoPlayerUtility::SetScaleFactorL(TReal32 aWidthPercentage, TReal32 aHeightPercentage, TBool aAntiAliasFiltering)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   898
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   899
	iBody->SetScaleFactorL(aWidthPercentage, aHeightPercentage, aAntiAliasFiltering);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   900
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   901
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   902
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   903
Gets the scale factor currently applied to the video image.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   904
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   905
@param  aWidthPercentage
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   906
        On function return, contains the current scaling percentage applied to the width of the
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   907
        video image (100 = original size).
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   908
@param  aHeightPercentage
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   909
        On function return, contains the current scaling percentage applied to the height of the
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   910
        of the video image (100 = original size).
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   911
@param  aAntiAliasFiltering
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   912
        The boolean specifying if anit-aliasing is being used.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   913
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   914
@since  7.0s
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   915
@see    SetScaleFactorL
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   916
*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   917
EXPORT_C void CVideoPlayerUtility::GetScaleFactorL(TReal32& aWidthPercentage, TReal32& aHeightPercentage, TBool& aAntiAliasFiltering) const
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   918
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   919
	iBody->GetScaleFactorL(aWidthPercentage, aHeightPercentage, aAntiAliasFiltering);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   920
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   921
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   922
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   923
Selects a region of the video image to be displayed.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   924
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   925
@param  aCropRegion
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   926
        The dimensions of the crop region, relative to the video image.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   927
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   928
@since 7.0s
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   929
@see   GetCropRegionL
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   930
*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   931
EXPORT_C void CVideoPlayerUtility::SetCropRegionL(const TRect& aCropRegion)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   932
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   933
	iBody->SetCropRegionL(aCropRegion);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   934
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   935
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   936
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   937
Gets the crop region currently applied to the image.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   938
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   939
@param  aCropRegion
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   940
        The dimensions of the crop region, relative to the video image. If no
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   941
        crop region has been applied, the full dimensions of the video image will
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   942
        be returned.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   943
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   944
@since 7.0s
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   945
@see   SetCropRegionL
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   946
*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   947
EXPORT_C void CVideoPlayerUtility::GetCropRegionL(TRect& aCropRegion) const
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   948
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   949
	iBody->GetCropRegionL(aCropRegion);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   950
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   951
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   952
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   953
Prepares the video clip to be accessed.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   954
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   955
A call to this method tells the loaded controller plugin to finalise its configuration
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   956
and to prepare to start reading the video clip.  It is not possible to play the video clip
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   957
or query any of its properties (e.g. duration, meta data etc.) until this method has signalled
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   958
its completion (successful or otherwise) via the callback MvpuoPrepareComplete.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   959
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   960
@since  7.0s
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   961
*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   962
EXPORT_C void CVideoPlayerUtility::Prepare()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   963
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   964
	iBody->Prepare();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   965
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   966
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   967
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   968
Returns the controller implementation information associated with the current controller.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   969
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   970
@return The controller implementation structure associated with the controller.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   971
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   972
@since 7.0s
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   973
*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   974
EXPORT_C const CMMFControllerImplementationInformation& CVideoPlayerUtility::ControllerImplementationInformationL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   975
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   976
	return iBody->ControllerImplementationInformationL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   977
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   978
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   979
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   980
Gets a controller's DRM custom command implementation.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   981
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   982
@return A pointer to a controller's DRM custom command implementation, or NULL
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   983
if the controller does not support it.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   984
*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   985
EXPORT_C MMMFDRMCustomCommand* CVideoPlayerUtility::GetDRMCustomCommand()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   986
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   987
	return iBody->GetDRMCustomCommand();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   988
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   989
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   990
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   991
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   992
Enables a client application to stop the video player from using direct screen access (DSA).
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   993
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   994
From Symbian release 9.5 onwards this method is not supported when called on an instance of CVideoPlayerUtility2, and will always 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   995
leave with KErrNotSupported.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   996
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   997
This function leaves if errors are encountered when trying to stop DSA.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   998
*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
   999
EXPORT_C void CVideoPlayerUtility::StopDirectScreenAccessL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1000
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1001
	iBody->StopDirectScreenAccessL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1002
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1003
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1004
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1005
Enables a client application to start the video player using direct screen access (DSA).
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1006
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1007
From Symbian release 9.5 onwards this method is not supported when called on an instance of CVideoPlayerUtility2, and will always 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1008
leave with KErrNotSupported.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1009
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1010
This function leaves if errors are encountered when trying to start DSA.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1011
*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1012
EXPORT_C void CVideoPlayerUtility::StartDirectScreenAccessL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1013
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1014
	iBody->StartDirectScreenAccessL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1015
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1016
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1017
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1018
Registers for notification, when audio resource is available.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1019
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1020
@param	aCallback
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1021
      	Observer interface for audio resource notification event
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1022
      	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1023
@param 	aNotificationEventId
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1024
 		The Event for which the client registers.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1025
 	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1026
@param 	aNotificationRegistrationData
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1027
		Data specific to notification registration.This has been reserved for future use and its value should be NULL.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1028
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1029
@return An error code indicating if the registration is successful. KErrNone on success, 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1030
	otherwise another of the system-wide error codes.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1031
*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1032
EXPORT_C TInt CVideoPlayerUtility::RegisterAudioResourceNotification(MMMFAudioResourceNotificationCallback& aCallback, TUid aNotificationEventId, const TDesC8& aNotificationRegistrationData)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1033
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1034
	return iBody->RegisterAudioResourceNotification(aCallback, aNotificationEventId, aNotificationRegistrationData);	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1035
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1036
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1037
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1038
Cancels the registration for audio resource notification.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1039
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1040
@param  aNotificationEventId
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1041
	The Event to be cancellled.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1042
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1043
@return An error code indicating if the cancellation is successful. KErrNone on success, 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1044
	otherwise another of the system-wide error codes.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1045
*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1046
EXPORT_C TInt CVideoPlayerUtility::CancelRegisterAudioResourceNotification(TUid aNotificationEventId)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1047
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1048
	return iBody->CancelRegisterAudioResourceNotification(aNotificationEventId);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1049
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1050
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1051
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1052
Waits for the client to resume the play even after the default timer expires.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1053
Unless the client completes the play no other client gets notification.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1054
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1055
@return An error code indicating if the function call is successful. KErrNone on success, 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1056
		otherwise another of the system-wide error codes.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1057
*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1058
EXPORT_C TInt CVideoPlayerUtility::WillResumePlay()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1059
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1060
	return iBody->WillResumePlay();	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1061
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1062
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1063
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1064
Sets the initial screen to be used for the video display.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1065
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1066
From Symbian release 9.5 onwards this method is not supported when called on an instance of CVideoPlayerUtility2, and will always 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1067
leave with KErrNotSupported.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1068
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1069
@param  aScreenNumber
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1070
        The screen number of the device.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1071
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1072
@return KErrNotSupported if the secondary screen display is not supported in Multimedia Framework or 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1073
from Symbian release 9.5 onwards when called on an instance of CVideoPlayerUtility2. KErrNone on success.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1074
*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1075
EXPORT_C TInt CVideoPlayerUtility::SetInitScreenNumber(TInt aScreenNumber)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1076
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1077
	return iBody->SetInitScreenNumber(aScreenNumber);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1078
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1079
	
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1080
_LIT(KMMFMediaClientVideoPanicCategory, "MediaClientVideo");
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1081
GLDEF_C void Panic(TMmfVideoPanic aError)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1082
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1083
	User::Panic(KMMFMediaClientVideoPanicCategory, aError);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1084
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1085
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1086
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1087
Set video playback velocity relative to the normal video clip speed.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1088
This method can be used for fast forward, rewind, and slow-motion
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1089
playback, depending on the capabilities of the underlying play-controller
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1090
implementation and the characteristics of the video clip. Velocity set
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1091
in this call will take effect immediately. Additionally,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1092
playback velocity cannot be changed for streamed video. Use
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1093
GetPlayRateCapabilitiesL() to determine what playback modes are
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1094
available.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1095
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1096
Note that due to performance reasons, it may not be possible to perform
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1097
fast forward or rewind at the requested speed. If that happens, the
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1098
play-controller will use the nearest available velocity. This is not
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1099
considered an error and the method will not leave. User can query
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1100
velocity in effect by calling PlayVelocityL().
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1101
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1102
The default playback velocity is 100.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1103
Play velocity is persistent across stop play calls on utility. 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1104
That is SetPlayVelocityL(),call StopL(),then PlayL() will play with 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1105
the velocity set in most recent call. On opening different
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1106
file the velocity will default to 100.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1107
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1108
This function quits or exits leaving any of the system wide error codes.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1109
Common error codes are listed below.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1110
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1111
@param aVelocity Playback velocity as a percentage relative to the
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1112
                 normal video clip speed. Use 100 for normal-speed
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1113
                 forward playback and negative value for reverse. Values above
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1114
                 100 and below 0 correspond to fast forward and
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1115
                 rewind respectively, while values 1 to 100 represent
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1116
                 slow-motioned playback.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1117
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1118
@pre Playback has been started, but may be paused.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1119
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1120
@see CVideoPlayerUtility::GetPlayRateCapabilitiesL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1121
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1122
@leave KErrNotSupported The requested playback velocity is not
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1123
         supported.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1124
@leave KErrNotReady Playback has not yet been started
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1125
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1126
@publishedPartner
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1127
*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1128
EXPORT_C void CVideoPlayerUtility::SetPlayVelocityL(TInt aVelocity)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1129
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1130
	iBody->SetPlayVelocityL(aVelocity);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1131
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1132
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1133
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1134
Returns the current playback velocity. If setting play velocity is
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1135
not supported or velocity is not set this will return default play velocity
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1136
100 corresponding to normal playback.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1137
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1138
If implementation is not supporting the velocity set with SetPlayVelocityL
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1139
it will default to the nearest velocity. In this case this API will return
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1140
the value it has defaulted to.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1141
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1142
If an error occurs, this function leaves with any of the system
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1143
wide error codes. Common error codes are listed below.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1144
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1145
@return The current playback velocity as a percentage relative to the
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1146
        normal video clip speed.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1147
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1148
@pre Playback has been started, but may be paused.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1149
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1150
@see CVideoPlayerUtility::SetPlayVelocityL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1151
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1152
@leave KErrNotReady Playback has not yet been started
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1153
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1154
@publishedPartner
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1155
*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1156
EXPORT_C TInt CVideoPlayerUtility::PlayVelocityL() const
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1157
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1158
	return iBody->PlayVelocityL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1159
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1160
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1161
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1162
Steps the current video playback position forward or backward by a
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1163
number of frames. Frame step is only available when playback is paused.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1164
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1165
Support for frame stepping may depend on the underlying play-controller
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1166
implementation and the video clip open. Additionally, frame step is
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1167
typically not available in streamed playback. Use GetPlayRateCapabilitiesL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1168
to query if frame step is currently possible. Application may check the
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1169
value of the current positon after stepping through several frames by calling
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1170
PositionL() API.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1171
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1172
Implementations may not be able to step exactly the number of frames
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1173
requested, especially when stepping backwards. If this happens, the
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1174
play-controller will step to a frame close to the one requested. This is
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1175
not considered an error.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1176
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1177
This function quits or exits leaving any of the system wide error codes.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1178
Common error codes are listed below.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1179
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1180
@param aStep The number of frames to step. Use positive values for
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1181
             stepping forward and negative values for stepping
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1182
             back.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1183
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1184
@pre Playback has been started and is currently paused. 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1185
	 That means this API can be called only in paused state.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1186
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1187
@see CVideoPlayerUtility::GetPlayRateCapabilitiesL()
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1188
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1189
@leave KErrNotSupported Frame step is not supported. Note that some
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1190
         implementations may support step forward but not step backward.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1191
@leave KErrNotReady Playback has not yet been started or is not in paused state.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1192
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1193
@publishedPartner
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1194
*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1195
EXPORT_C void CVideoPlayerUtility::StepFrameL(TInt aStep)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1196
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1197
	iBody->StepFrameL(aStep);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1198
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1199
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1200
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1201
Queries the current playback rate capabilities. The capabilities
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1202
describe whether fast forward, reverse playback, slow motion, or
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1203
step backward or forward is possible. The capabilities may depend on
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1204
the controller implementation and the video clip. Additionally,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1205
only normal-speed forward playback is typically possible in streamed playback.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1206
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1207
This function quits or exits leaving any of the system wide error codes.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1208
Common error codes are listed below.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1209
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1210
@param aCapabilities Playback rate capabilities
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1211
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1212
@pre The video clip has been opened
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1213
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1214
@leave KErrNotReady The video clip has not yet been opened
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1215
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1216
@publishedPartner
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1217
*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1218
EXPORT_C void CVideoPlayerUtility::GetPlayRateCapabilitiesL(TVideoPlayRateCapabilities& aCapabilities)const
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1219
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1220
	iBody->GetPlayRateCapabilitiesL(aCapabilities);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1221
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1222
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1223
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1224
Enables or disables video playback. This function is used to disable
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1225
video playback in a video clip to play only the audio track. By default
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1226
video playback is always enabled if the clip has a video track.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1227
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1228
This method can be called after the video clip has been opened, but
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1229
only before calling Prepare().
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1230
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1231
This function quits or exits leaving any of the system wide error codes.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1232
Common error codes are listed below.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1233
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1234
@param aVideoEnabled ETrue to enable video playback, EFalse to disable
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1235
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1236
@pre The video clip has been opened by the client and Prepare() has not been called.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1237
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1238
@leave KErrNotSupported This method is not supported -- video playback
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1239
         is always enabled. 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1240
@leave KErrNotReady The clip has not been opened or the client has
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1241
         already called Prepare().
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1242
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1243
@publishedPartner
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1244
*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1245
EXPORT_C void CVideoPlayerUtility::SetVideoEnabledL(TBool aVideoEnabled)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1246
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1247
	iBody->SetVideoEnabledL(aVideoEnabled);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1248
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1249
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1250
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1251
Queries whether video playback is currently enabled or not.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1252
If an error occurs, this function leaves with any of the system
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1253
wide error codes. Common error codes are listed below.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1254
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1255
@return ETrue if video playback is enabled, EFalse if not.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1256
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1257
@publishedPartner
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1258
*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1259
EXPORT_C TBool CVideoPlayerUtility::VideoEnabledL() const
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1260
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1261
	return iBody->VideoEnabledL();
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1262
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1263
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1264
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1265
Enables or disables audio playback. This function is used to disable
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1266
audio playback in a video clip to play only the video track. By default
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1267
audio playback is always enabled if the clip has an audio track.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1268
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1269
This method can be called after the video clip has been opened, but
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1270
only before calling Prepare().
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1271
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1272
This function quits or exits leaving any of the system wide error codes.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1273
Common error codes are listed below.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1274
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1275
@param aAudioEnabled ETrue to enable audio playback, EFalse to disable
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1276
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1277
@pre The video clip has been opened by the client and Prepare() has not been called.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1278
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1279
@leave KErrNotSupported This method is not supported -- audio playback
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1280
         is always enabled
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1281
@leave KErrNotReady The clip has not been opened or the client has
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1282
         already called Prepare().
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1283
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1284
@publishedPartner
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1285
*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1286
EXPORT_C void CVideoPlayerUtility::SetAudioEnabledL(TBool aAudioEnabled)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1287
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1288
	iBody->SetAudioEnabledL(aAudioEnabled);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1289
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1290
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1291
/** 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1292
Set video automatic scaling. When automatic scaling is active, the
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1293
video picture is scaled automatically to match the video window,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1294
based on the scaling type. This variant of SetAutoScaleL() will
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1295
always center the picture in the window.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1296
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1297
Calling SetAutoScaleL() will override any scaling factors set with
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1298
SetScaleFactorL(). Calling SetScaleFactorL() will disable automatic
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1299
scaling.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1300
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1301
Not all video controllers support automatic scaling. 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1302
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1303
This function quits or exits leaving any of the system wide error codes.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1304
Common error codes are listed below.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1305
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1306
@see TAutoScaleType, THorizontalAlign, TVerticalAlign
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1307
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1308
@param aScaleType Automatic scaling type
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1309
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1310
@pre The video clip has been opened by the client
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1311
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1312
@leave KErrNotSupported Automatic scaling is not supported
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1313
*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1314
EXPORT_C void CVideoPlayerUtility::SetAutoScaleL(TAutoScaleType aScaleType)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1315
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1316
	iBody->SetAutoScaleL(aScaleType);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1317
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1318
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1319
/** 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1320
Set video automatic scaling. When automatic scaling is active, the
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1321
video picture is scaled automatically to match the video window,
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1322
based on the scaling type, and positioned according to the
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1323
parameters.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1324
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1325
Calling SetAutoScaleL() will override any scaling factors set with
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1326
SetScaleFactorL(). Calling SetScaleFactorL() will disable automatic
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1327
scaling.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1328
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1329
Not all video controller support automatic scaling. 
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1330
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1331
This function quits or exits leaving any of the system wide error codes.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1332
Common error codes are listed below.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1333
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1334
@see TAutoScaleType, THorizontalAlign, TVerticalAlign
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1335
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1336
@param aScaleType Automatic scaling type
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1337
@param aHorizPos Video picture horizontal position, relative to the
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1338
                 video window. The value can be either a pixel offset
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1339
                 (positive or negative) from the top left corner of the
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1340
                 window to the top left corner of the picture, or an
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1341
                 alignment constant from enum THorizontalAlign.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1342
@param aVertPos Video picture vertical position, relative to the
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1343
                 video window. The value can be either a pixel offset
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1344
                 (positive or negative) from the top left corner of the
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1345
                 window to the top left corner of the picture, or an
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1346
                 alignment constant from enum TVerticalAlign.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1347
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1348
@pre The video clip has been opened by the client.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1349
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1350
@leave KErrNotSupported Automatic scaling is not supported
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1351
*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1352
EXPORT_C void CVideoPlayerUtility::SetAutoScaleL(TAutoScaleType aScaleType, TInt aHorizPos, TInt aVertPos)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1353
	{
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1354
	iBody->SetAutoScaleL(aScaleType, aHorizPos, aVertPos );
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1355
	}
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1356
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1357
/**
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1358
When enabled sets automatic switching of surface to/from external display when it is connected/disconnected from the device.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1359
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1360
Automatic switching is enabled by default, but only if the client thread that created this utility has an Active Scheduler
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1361
installed and the device supports external display switching.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1362
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1363
To use this function the client thread must have an Active Scheduler installed otherwise it will leave with KErrNotReady.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1364
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1365
@param  aControl
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1366
        ETrue to enable. EFalse to disable.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1367
@param  aDisplay
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1368
        Display id of display to enable external switching for.
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1369
@leave  KErrNotSupported Device does not support external displays
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1370
@leave  KErrNotReady CActiveScheduler is not installed
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1371
*/
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1372
EXPORT_C void CVideoPlayerUtility::SetExternalDisplaySwitchingL(TInt aDisplay, TBool aControl)
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1373
    {
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1374
    iBody->SetExternalDisplaySwitchingL(aDisplay, aControl);
b8ed18f6c07b 2010wk40
hgs
parents:
diff changeset
  1375
    }