tsrc/consoleplayer/player/src/openmax_al/openmaxplayerutility.h
author hgs
Tue, 21 Sep 2010 11:21:54 -0500
changeset 36 20d2741ccdad
parent 33 e1b6d78dfe6a
permissions -rw-r--r--
201037
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
36
hgs
parents: 33
diff changeset
     1
/*
hgs
parents: 33
diff changeset
     2
 * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
hgs
parents: 33
diff changeset
     3
 * All rights reserved.
hgs
parents: 33
diff changeset
     4
 * This component and the accompanying materials are made available
hgs
parents: 33
diff changeset
     5
 * under the terms of "Eclipse Public License v1.0"
hgs
parents: 33
diff changeset
     6
 * which accompanies this distribution, and is available
hgs
parents: 33
diff changeset
     7
 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
hgs
parents: 33
diff changeset
     8
 *
hgs
parents: 33
diff changeset
     9
 * Initial Contributors:
hgs
parents: 33
diff changeset
    10
 * Nokia Corporation - initial contribution.
hgs
parents: 33
diff changeset
    11
 *
hgs
parents: 33
diff changeset
    12
 * Contributors:
hgs
parents: 33
diff changeset
    13
 *
hgs
parents: 33
diff changeset
    14
 * Description:
hgs
parents: 33
diff changeset
    15
 * Source file for the main class of the ConsolePlayer test app.
hgs
parents: 33
diff changeset
    16
 *
hgs
parents: 33
diff changeset
    17
 */
hgs
parents: 33
diff changeset
    18
33
hgs
parents:
diff changeset
    19
#ifndef OPENMAX_PLAYER_UTILITY_H
hgs
parents:
diff changeset
    20
#define OPENMAX_PLAYER_UTILITY_H
hgs
parents:
diff changeset
    21
hgs
parents:
diff changeset
    22
#include <string.h>
hgs
parents:
diff changeset
    23
#include <e32std.h>
hgs
parents:
diff changeset
    24
#include <w32std.h>
hgs
parents:
diff changeset
    25
#include <mmf\common\Mmfvideo.h> // for TVideoRotation and TAutoScaleType
hgs
parents:
diff changeset
    26
#include "playerwindow.h"
hgs
parents:
diff changeset
    27
#include "openmaxal.h"
hgs
parents:
diff changeset
    28
hgs
parents:
diff changeset
    29
#define MAX_NUMBER_INTERFACES 5
hgs
parents:
diff changeset
    30
hgs
parents:
diff changeset
    31
class COpenMaxPlayerUtility
hgs
parents:
diff changeset
    32
{
hgs
parents:
diff changeset
    33
public:
hgs
parents:
diff changeset
    34
    COpenMaxPlayerUtility();
hgs
parents:
diff changeset
    35
    ~COpenMaxPlayerUtility();
36
hgs
parents: 33
diff changeset
    36
33
hgs
parents:
diff changeset
    37
    void VideoFrameSize(TSize& aSize) const;
hgs
parents:
diff changeset
    38
    TTimeIntervalMicroSeconds Position() const;
hgs
parents:
diff changeset
    39
    TTimeIntervalMicroSeconds Duration() const;
hgs
parents:
diff changeset
    40
    TInt Volume() const;
hgs
parents:
diff changeset
    41
    TInt MaxVolume() const;
hgs
parents:
diff changeset
    42
    TInt Balance()const;
hgs
parents:
diff changeset
    43
    TVideoRotation Rotation() const;
36
hgs
parents: 33
diff changeset
    44
33
hgs
parents:
diff changeset
    45
    void SetVolume(TInt aVolume);
hgs
parents:
diff changeset
    46
    void SetBalance(TInt aBalance);
hgs
parents:
diff changeset
    47
    void SetPosition(const TTimeIntervalMicroSeconds& aPosition);
hgs
parents:
diff changeset
    48
    void SetRotation(const RWindow& aWindow, TVideoRotation aRotation);
hgs
parents:
diff changeset
    49
    void SetScaleFactor(const RWindow& aWindow, TReal32 aWidthPercentage, TReal32 aHeightPercentage);
hgs
parents:
diff changeset
    50
    void SetAutoScale(const RWindow& aWindow, TAutoScaleType aScaleType);
hgs
parents:
diff changeset
    51
    void StepFrame(TInt aStep);
36
hgs
parents: 33
diff changeset
    52
33
hgs
parents:
diff changeset
    53
    void OpenFile(const TDesC& aFileName,TUid aControllerUid = KNullUid);
hgs
parents:
diff changeset
    54
    void OpenUrl(const TDesC& aUrl);
hgs
parents:
diff changeset
    55
    void Prepare();
hgs
parents:
diff changeset
    56
    void Close();
hgs
parents:
diff changeset
    57
    void Play();
hgs
parents:
diff changeset
    58
    TInt Stop();
hgs
parents:
diff changeset
    59
    void Pause();
hgs
parents:
diff changeset
    60
hgs
parents:
diff changeset
    61
    void AddDisplayWindow(RWsSession& aWs, CWsScreenDevice& aScreenDevice, RWindow& aWindow);
hgs
parents:
diff changeset
    62
    void SetWindowClipRect(const RWindow& aWindow, const TRect& aWindowClipRect);
hgs
parents:
diff changeset
    63
    void SetVideoExtent(const RWindow& aWindow, const TRect& aVideoExtent);
hgs
parents:
diff changeset
    64
hgs
parents:
diff changeset
    65
    bool CheckErr (XAresult res, char* aMsg = "");
hgs
parents:
diff changeset
    66
hgs
parents:
diff changeset
    67
    void Init (void);
hgs
parents:
diff changeset
    68
    void DestroyPlayer ();
hgs
parents:
diff changeset
    69
    void DrawEQDisplay (void);
hgs
parents:
diff changeset
    70
    void SetBandLevel(XAint16 band, XAboolean increase);
hgs
parents:
diff changeset
    71
    void PlaySource(const XADataLocator_URI &source);
hgs
parents:
diff changeset
    72
    void PlayPause(bool);
hgs
parents:
diff changeset
    73
    void MuteChanged(bool);
hgs
parents:
diff changeset
    74
    TInt SetPlayVelocity( TInt aVelocity );
36
hgs
parents: 33
diff changeset
    75
33
hgs
parents:
diff changeset
    76
protected:
hgs
parents:
diff changeset
    77
    void StartBackLightTimer();
hgs
parents:
diff changeset
    78
    void CancelBackLightTimer();
36
hgs
parents: 33
diff changeset
    79
33
hgs
parents:
diff changeset
    80
private:
hgs
parents:
diff changeset
    81
    XAObjectItf m_engine; /* OpenMAX AL Engine */
hgs
parents:
diff changeset
    82
    XAObjectItf player;
hgs
parents:
diff changeset
    83
    XAObjectItf m_outputMix;
hgs
parents:
diff changeset
    84
hgs
parents:
diff changeset
    85
    XAEngineItf m_EngineItf;
hgs
parents:
diff changeset
    86
    XAPlayItf m_playItf;
hgs
parents:
diff changeset
    87
    XAEqualizerItf m_equalizerItf;
hgs
parents:
diff changeset
    88
    XAVolumeItf m_volumeItf;
hgs
parents:
diff changeset
    89
hgs
parents:
diff changeset
    90
    XAInterfaceID m_iidArray[MAX_NUMBER_INTERFACES];
hgs
parents:
diff changeset
    91
    XAboolean m_required[MAX_NUMBER_INTERFACES];
hgs
parents:
diff changeset
    92
hgs
parents:
diff changeset
    93
    XADataSource m_dataSource;
hgs
parents:
diff changeset
    94
    XADataSink          m_audioSink;
hgs
parents:
diff changeset
    95
    XADataSink          m_videoSink;
hgs
parents:
diff changeset
    96
    XADataFormat_MIME m_mime;
hgs
parents:
diff changeset
    97
    XADataLocator_OutputMix m_locator_outputmix;
hgs
parents:
diff changeset
    98
    XADataLocator_NativeDisplay m_locator_displayregion;
hgs
parents:
diff changeset
    99
    XADataLocator_URI uri;
36
hgs
parents: 33
diff changeset
   100
33
hgs
parents:
diff changeset
   101
    TRect   m_displayRect;
hgs
parents:
diff changeset
   102
    int     m_nVolume;
hgs
parents:
diff changeset
   103
    int     m_Velocity;
hgs
parents:
diff changeset
   104
    XAchar  m_sourceName[1000];
hgs
parents:
diff changeset
   105
};
hgs
parents:
diff changeset
   106
hgs
parents:
diff changeset
   107
#endif // OPENMAX_PLAYER_UTILITY_H