khronosfws/openmax_al/src/mmf_adaptation/cmmfbackendengine.h
author hgs
Fri, 11 Jun 2010 19:59:23 -0500
changeset 25 6f7ceef7b1d1
parent 21 2ed61feeead6
child 28 ebf79c79991a
permissions -rw-r--r--
201023
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     1
/*
25
hgs
parents: 21
diff changeset
     2
 * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
hgs
parents: 21
diff changeset
     3
 * All rights reserved.
hgs
parents: 21
diff changeset
     4
 * This component and the accompanying materials are made available
hgs
parents: 21
diff changeset
     5
 * under the terms of "Eclipse Public License v1.0"
hgs
parents: 21
diff changeset
     6
 * which accompanies this distribution, and is available
hgs
parents: 21
diff changeset
     7
 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
hgs
parents: 21
diff changeset
     8
 *
hgs
parents: 21
diff changeset
     9
 * Initial Contributors:
hgs
parents: 21
diff changeset
    10
 * Nokia Corporation - initial contribution.
hgs
parents: 21
diff changeset
    11
 *
hgs
parents: 21
diff changeset
    12
 * Contributors:
hgs
parents: 21
diff changeset
    13
 *
hgs
parents: 21
diff changeset
    14
 * Description: MMF Backend Engine Header
hgs
parents: 21
diff changeset
    15
 *
hgs
parents: 21
diff changeset
    16
 */
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    17
25
hgs
parents: 21
diff changeset
    18
#ifndef CMMFBackendEngine_H
hgs
parents: 21
diff changeset
    19
#define CMMFBackendEngine_H
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    20
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    21
#define ENABLE_GRAPHICS_SURFACE_INTEGRATION
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    22
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    23
#include "openmaxalwrapper.h"
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    24
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    25
#ifdef __cplusplus
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    26
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    27
#include <e32base.h>
20
hgs
parents: 19
diff changeset
    28
#include <mdaaudiosampleplayer.h>  
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    29
#include <f32file.h>
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    30
#include <videoplayer.h>
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    31
#include <videoplayer2.h>
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    32
#include <e32std.h>
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    33
#include <mmf/common/mmferrors.h>
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    34
#include <mmf/common/Mmfbase.h>
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    35
#include <MMFMetadataEventConfigConstants.h>
19
hgs
parents: 12
diff changeset
    36
#include <mmf/common/mmfstandardcustomcommands.h>
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    37
#ifdef ENABLE_GRAPHICS_SURFACE_INTEGRATION
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    38
#include <graphics/surface.h> //TSurfaceId
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    39
#include <mmf/common/mmfvideo.h> //TVideoAspectRatio
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    40
#include <mediaclientvideodisplay.h>
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    41
#include <surfaceeventhandler.h>
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    42
#include <mdaaudiosampleeditor.h>
19
hgs
parents: 12
diff changeset
    43
#include <AudioInput.h>
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    44
#include "sfmrlocaltimer.h"
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    45
#endif
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    46
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    47
// MetaDataWrite Custom Command UID
25
hgs
parents: 21
diff changeset
    48
const TUid KUidMetaDataWriteCustomCommand =
hgs
parents: 21
diff changeset
    49
    {
hgs
parents: 21
diff changeset
    50
    0x10207af9
hgs
parents: 21
diff changeset
    51
    };
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    52
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    53
#define MAX_EXTENSION_SIZE 10
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    54
19
hgs
parents: 12
diff changeset
    55
class CMarkerPositionTimer;
hgs
parents: 12
diff changeset
    56
class CPositionUpdateTimer;
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    57
NONSHARABLE_CLASS(CMMFBackendEngine) : public CBase,
25
hgs
parents: 21
diff changeset
    58
        public MVideoPlayerUtilityObserver,
hgs
parents: 21
diff changeset
    59
        public MVideoLoadingObserver,
hgs
parents: 21
diff changeset
    60
        public MMdaAudioPlayerCallback,
hgs
parents: 21
diff changeset
    61
        public MMdaObjectStateChangeObserver
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    62
    {
25
hgs
parents: 21
diff changeset
    63
public:
hgs
parents: 21
diff changeset
    64
    enum TFuncInUse
hgs
parents: 21
diff changeset
    65
        {
hgs
parents: 21
diff changeset
    66
                EPlay = 0, 
hgs
parents: 21
diff changeset
    67
                ERecord
hgs
parents: 21
diff changeset
    68
        };
21
hgs
parents: 20
diff changeset
    69
25
hgs
parents: 21
diff changeset
    70
    enum TUriType
hgs
parents: 21
diff changeset
    71
        {
hgs
parents: 21
diff changeset
    72
                ELocal = 0, 
hgs
parents: 21
diff changeset
    73
                EStreaming
hgs
parents: 21
diff changeset
    74
        };
hgs
parents: 21
diff changeset
    75
hgs
parents: 21
diff changeset
    76
    enum TMMFUtiltyInUse
hgs
parents: 21
diff changeset
    77
        {
19
hgs
parents: 12
diff changeset
    78
        ENoUtility,
hgs
parents: 12
diff changeset
    79
        EVideoPlayerUtility,
hgs
parents: 12
diff changeset
    80
        EAudioPlayerUtility,
hgs
parents: 12
diff changeset
    81
        EAudioRecorderUtility
25
hgs
parents: 21
diff changeset
    82
        };
hgs
parents: 21
diff changeset
    83
hgs
parents: 21
diff changeset
    84
    enum TRecorderState
hgs
parents: 21
diff changeset
    85
        {
hgs
parents: 21
diff changeset
    86
                ERecorderNotReady = 0, 
hgs
parents: 21
diff changeset
    87
                ERecorderOpen, 
hgs
parents: 21
diff changeset
    88
                ERecorderRecording
hgs
parents: 21
diff changeset
    89
        };
hgs
parents: 21
diff changeset
    90
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    91
public:
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    92
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    93
    static CMMFBackendEngine* NewL();
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    94
    ~CMMFBackendEngine();
25
hgs
parents: 21
diff changeset
    95
hgs
parents: 21
diff changeset
    96
    TInt SetFileName(char* uri, XAuint32 format, TFuncInUse func);
19
hgs
parents: 12
diff changeset
    97
    void Close();
hgs
parents: 12
diff changeset
    98
    void Destroy();
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    99
    TInt SetRecorderState(TRecorderState state, XAboolean stopCalled);
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   100
    TInt GetRecordPosition(XAuint64* position);
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   101
    TInt SetPositionUpdatePerioed(XAmillisecond period);
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   102
    TInt SetAdaptContext(void* adaptcontext);
19
hgs
parents: 12
diff changeset
   103
    TInt GetCodecId(XAuint32* encoderId);
hgs
parents: 12
diff changeset
   104
    TInt GetBitRate(XAuint32* bitrate);
hgs
parents: 12
diff changeset
   105
    TInt GetSampleRate(XAmilliHertz* samplerate);
hgs
parents: 12
diff changeset
   106
    TInt GetChannels(XAuint32* channels);
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   107
    TInt SetDestinationBitRate(XAuint32* bitrate);
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   108
    TInt SetDestinationSampleRate(XAmilliHertz* samplerate);
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   109
    TInt SetDestinationChannels(XAuint32* channels);
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   110
19
hgs
parents: 12
diff changeset
   111
    XAresult CreateAndConfigureWindowL();
hgs
parents: 12
diff changeset
   112
    XAresult SetNativeDisplayInformation(void* display_info);
hgs
parents: 12
diff changeset
   113
    XAresult ResumePlayback();
25
hgs
parents: 21
diff changeset
   114
    XAresult PausePlayback();
19
hgs
parents: 12
diff changeset
   115
    XAresult StopPlayback();
hgs
parents: 12
diff changeset
   116
    XAresult GetPlayState(XAuint32 *pState);
hgs
parents: 12
diff changeset
   117
    XAresult GetDuration(XAmillisecond *pMsec);
hgs
parents: 12
diff changeset
   118
    XAresult GetPosition(XAmillisecond *pMsec);
hgs
parents: 12
diff changeset
   119
    XAresult SetPlayAdaptContext(void * adaptcontext);
hgs
parents: 12
diff changeset
   120
    XAresult RegisterCallback(xaPlayCallback cbFunction);
hgs
parents: 12
diff changeset
   121
    XAresult SetCallbackEventsMask(XAuint32 eventflags);
hgs
parents: 12
diff changeset
   122
    XAresult SetMarkerPosition(XAmillisecond mSec);
hgs
parents: 12
diff changeset
   123
    XAresult ClearMarkerPosition();
hgs
parents: 12
diff changeset
   124
    XAresult SetPositionUpdatePeriod(XAmillisecond mSec);
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   125
19
hgs
parents: 12
diff changeset
   126
    XAresult SetPosition(XAmillisecond pMsec);
hgs
parents: 12
diff changeset
   127
    XAresult SetRepeats(XAboolean repeat);
hgs
parents: 12
diff changeset
   128
    XAresult SetPlayWindow(XAmillisecond start, XAmillisecond end);
25
hgs
parents: 21
diff changeset
   129
19
hgs
parents: 12
diff changeset
   130
    XAresult GetNumStreams(XAuint32* numstreams);
hgs
parents: 12
diff changeset
   131
    XAresult GetStreamInfo(XAuint32 streamindex, XAuint32* streamtype);
25
hgs
parents: 21
diff changeset
   132
    XAresult GetVideoFrameSize(XAuint32* height, XAuint32* width,
hgs
parents: 21
diff changeset
   133
            XAuint32* frameRate);
19
hgs
parents: 12
diff changeset
   134
    XAresult SetActiveState(XAuint32 streamindex, XAboolean active);
25
hgs
parents: 21
diff changeset
   135
19
hgs
parents: 12
diff changeset
   136
    XAresult SetVolume(XAuint32 volume);
hgs
parents: 12
diff changeset
   137
    XAresult GetVolume(XAuint32* volume);
hgs
parents: 12
diff changeset
   138
    XAresult GetMaxVolume(XAuint32* maxvolume);
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   139
public:
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   140
19
hgs
parents: 12
diff changeset
   141
    // MMdaObjectStateChangeObserver
25
hgs
parents: 21
diff changeset
   142
    void MoscoStateChangeEvent(CBase* aObject, TInt aPreviousState,
hgs
parents: 21
diff changeset
   143
            TInt aCurrentState, TInt aErrorcCode);
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   144
19
hgs
parents: 12
diff changeset
   145
    //MMdaAudioPlayerCallback
25
hgs
parents: 21
diff changeset
   146
    void MapcInitComplete(TInt aError,
19
hgs
parents: 12
diff changeset
   147
            const TTimeIntervalMicroSeconds& aDuration);
hgs
parents: 12
diff changeset
   148
    void MapcPlayComplete(TInt aError);
25
hgs
parents: 21
diff changeset
   149
19
hgs
parents: 12
diff changeset
   150
    //From MVidePlayerUtilityObserver
hgs
parents: 12
diff changeset
   151
    void MvpuoOpenComplete(TInt aError);
hgs
parents: 12
diff changeset
   152
    void MvpuoPrepareComplete(TInt aError);
hgs
parents: 12
diff changeset
   153
    void MvpuoFrameReady(CFbsBitmap& aFrame, TInt aError);
hgs
parents: 12
diff changeset
   154
    void MvpuoPlayComplete(TInt aError);
hgs
parents: 12
diff changeset
   155
    void MvpuoEvent(const TMMFEvent& aEvent);
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   156
19
hgs
parents: 12
diff changeset
   157
    // From MRebufferCallback
hgs
parents: 12
diff changeset
   158
    void MvloLoadingStarted();
25
hgs
parents: 21
diff changeset
   159
    void MvloLoadingComplete();
19
hgs
parents: 12
diff changeset
   160
25
hgs
parents: 21
diff changeset
   161
private:
19
hgs
parents: 12
diff changeset
   162
    enum TPlayerState
25
hgs
parents: 21
diff changeset
   163
        {
hgs
parents: 21
diff changeset
   164
        EPlayerClosed,
hgs
parents: 21
diff changeset
   165
        EPlayerOpened,
hgs
parents: 21
diff changeset
   166
        EPlayerPrepared,
hgs
parents: 21
diff changeset
   167
        EPlayerPaused,
hgs
parents: 21
diff changeset
   168
        EPlayerPlaying,
hgs
parents: 21
diff changeset
   169
        };
hgs
parents: 21
diff changeset
   170
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   171
private:
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   172
    CMMFBackendEngine();
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   173
    void ConstructL();
20
hgs
parents: 19
diff changeset
   174
    void InitAudioRecorderUtilityL();
19
hgs
parents: 12
diff changeset
   175
    void InitAudioPlayerUtilityL();
hgs
parents: 12
diff changeset
   176
    void InitVideoPlayerUtilityL();
hgs
parents: 12
diff changeset
   177
    void InitPlayerTimersL();
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   178
    TInt DetermineAPIToUse(char *uri, TFuncInUse aFunc);
19
hgs
parents: 12
diff changeset
   179
    XAresult DoHandlePlayItfAttributesChanged();
hgs
parents: 12
diff changeset
   180
    void DoPostEvent(XAuint32 event);
hgs
parents: 12
diff changeset
   181
    TInt InitializeURIForMMFUtil(char *uri);
hgs
parents: 12
diff changeset
   182
hgs
parents: 12
diff changeset
   183
private:
25
hgs
parents: 21
diff changeset
   184
    CVideoPlayerUtility2* iVideoPlayer;
hgs
parents: 21
diff changeset
   185
    CBase* iBaseVideoPlayer;
hgs
parents: 21
diff changeset
   186
    CMdaAudioPlayerUtility* iAudioPlayer;
hgs
parents: 21
diff changeset
   187
    CBase* iBaseAudioPlayer;
hgs
parents: 21
diff changeset
   188
    CMdaAudioRecorderUtility* iAudioRecorder;
hgs
parents: 21
diff changeset
   189
    CBase* iBaseAudioRecorder;
hgs
parents: 21
diff changeset
   190
    TFileName iFileName;
hgs
parents: 21
diff changeset
   191
    TInt iAPIBeingUsed;
hgs
parents: 21
diff changeset
   192
    TInt iPreviousRecordState;
hgs
parents: 21
diff changeset
   193
    TInt iCurrentRecordState;
hgs
parents: 21
diff changeset
   194
    TInt iErrorCode;
hgs
parents: 21
diff changeset
   195
    TRecorderState iRecordState;
hgs
parents: 21
diff changeset
   196
    LocalTimer* iPositionUpdateTimer;
hgs
parents: 21
diff changeset
   197
    TUint64 iTimerDelay;
hgs
parents: 21
diff changeset
   198
    void* iAdaptContext;
hgs
parents: 21
diff changeset
   199
    XAuint32 iFileFormat;
hgs
parents: 21
diff changeset
   200
    TInt iPauseSupportMP4;
hgs
parents: 21
diff changeset
   201
    CActiveSchedulerWait* iActiveSchedulerWait;
hgs
parents: 21
diff changeset
   202
    CAudioInput* iAudioInputRecord;
19
hgs
parents: 12
diff changeset
   203
#ifdef USE_LOCAL_WINDOW_RESOURCES
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   204
    CMediaClientVideoDisplay* iMediaClientVideoDisplay;
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   205
    TRect m_clipRect;
25
hgs
parents: 21
diff changeset
   206
    TRect m_videoExtent;
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   207
    TRect m_cropRegion;
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   208
    TVideoAspectRatio m_pixelAspectRatio;
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   209
    RWindow m_Window;
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   210
    TRect m_cropRect;
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   211
    TSurfaceId m_surfaceId;
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   212
    TVideoRotation m_rotation;
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   213
    TReal32 m_scaleWidth;
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   214
    TReal32 m_scaleHeight;
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   215
    TInt m_horizPos;
25
hgs
parents: 21
diff changeset
   216
    TInt m_vertPos;
hgs
parents: 21
diff changeset
   217
    TInt m_displayId;
19
hgs
parents: 12
diff changeset
   218
    /*TBool m_bWindowReferencePassed;*/
hgs
parents: 12
diff changeset
   219
    RWsSession m_ws;
hgs
parents: 12
diff changeset
   220
#endif /* USE_LOCAL_WINDOW_RESOURCES */
hgs
parents: 12
diff changeset
   221
hgs
parents: 12
diff changeset
   222
    /* Holds duration of the media clip opend for playback */
hgs
parents: 12
diff changeset
   223
    TTimeIntervalMicroSeconds iMediaDuration;
hgs
parents: 12
diff changeset
   224
    /* Holds the playback position to be used for next play command */
hgs
parents: 12
diff changeset
   225
    TTimeIntervalMicroSeconds iPlaybackHead;
hgs
parents: 12
diff changeset
   226
    /* Holds current XA state of media player object */
hgs
parents: 12
diff changeset
   227
    XAuint32 iMediaPlayerState;
hgs
parents: 12
diff changeset
   228
    /* Owns */
hgs
parents: 12
diff changeset
   229
    CMarkerPositionTimer* iMarkerPositionTimer;
hgs
parents: 12
diff changeset
   230
    CPositionUpdateTimer* iPlayItfPositionUpdateTimer;
hgs
parents: 12
diff changeset
   231
    /* Owns */
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   232
    CWsScreenDevice* m_pScr;
19
hgs
parents: 12
diff changeset
   233
    /* Holds mmf state of media player object */
hgs
parents: 12
diff changeset
   234
    TPlayerState iMMFPlayerState;
hgs
parents: 12
diff changeset
   235
hgs
parents: 12
diff changeset
   236
    /* Property set by client */
hgs
parents: 12
diff changeset
   237
    XAuint32 iPlayItfEventFlags;
hgs
parents: 12
diff changeset
   238
    /* Property set by client */
hgs
parents: 12
diff changeset
   239
    xaPlayCallback iPlayItfCBFunction;
hgs
parents: 12
diff changeset
   240
    /* Property set by client */
hgs
parents: 12
diff changeset
   241
    XAmillisecond iMarkerPosition;
hgs
parents: 12
diff changeset
   242
    /* Property set by client */
hgs
parents: 12
diff changeset
   243
    XAmillisecond iPositionUpdatePeriod;
hgs
parents: 12
diff changeset
   244
    /* Property set by client (for file without file:///) */
hgs
parents: 12
diff changeset
   245
    HBufC* iUri; /* owns */
hgs
parents: 12
diff changeset
   246
    TPtr iUriPtr;
21
hgs
parents: 20
diff changeset
   247
    TUriType iUriType;
19
hgs
parents: 12
diff changeset
   248
    /* Property set by client */
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   249
    RWsSession* m_pWs;
19
hgs
parents: 12
diff changeset
   250
    /* Property set by client */
25
hgs
parents: 21
diff changeset
   251
    RWindow* m_pWindow;
19
hgs
parents: 12
diff changeset
   252
    };
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   253
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   254
#else  /* __cplusplus */
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   255
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   256
extern int mmf_backend_engine_init(void** engine);
19
hgs
parents: 12
diff changeset
   257
extern int mmf_backend_engine_deinit(void* engine);
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   258
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   259
extern int mmf_set_recorder_uri(void* context, char* uri, XAuint32 format);
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   260
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   261
extern void mmf_close(void* context);
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   262
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   263
extern int mmf_set_adapt_context(void* context, void* adaptcontext);
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   264
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   265
extern int mmf_start_recording(void* context);
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   266
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   267
extern int mmf_stop_recording(void* context, XAboolean stopCalled);
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   268
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   269
extern int mmf_get_record_position(void* context, XAuint64* position);
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   270
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   271
extern int mmf_set_record_position_update_period(void* context, XAmillisecond msec);
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   272
19
hgs
parents: 12
diff changeset
   273
extern int mmf_get_codec_id(void* context, XAuint32* encoderId);
hgs
parents: 12
diff changeset
   274
extern int mmf_get_channels(void* context, XAuint32* channelsIn);
hgs
parents: 12
diff changeset
   275
extern int mmf_get_samplerate(void* context, XAmilliHertz* sampleRate);
hgs
parents: 12
diff changeset
   276
extern int mmf_get_bitrate(void* context, XAuint32* bitRate);
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   277
extern int mmf_set_destination_channels(void* context, XAuint32* channelsIn);
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   278
extern int mmf_set_destination_samplerate(void* context, XAmilliHertz* sampleRate);
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   279
extern int mmf_set_destination_bitrate(void* context, XAuint32* bitRate);
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   280
19
hgs
parents: 12
diff changeset
   281
extern XAresult mmf_set_play_adapt_context(void * context, void * adaptcontext);
hgs
parents: 12
diff changeset
   282
extern XAresult mmf_set_player_uri(void * context, char * uri, XAuint32 format);
hgs
parents: 12
diff changeset
   283
/*extern XAresult mmf_set_window_handle(void * context, void * display_infos);*/
hgs
parents: 12
diff changeset
   284
extern XAresult mmf_setup_native_display(void * context, void * display_info);
hgs
parents: 12
diff changeset
   285
hgs
parents: 12
diff changeset
   286
/*Functions for XAPlayItf*/
hgs
parents: 12
diff changeset
   287
extern XAresult mmf_playitf_resume_playback(void * context);
hgs
parents: 12
diff changeset
   288
extern XAresult mmf_playitf_pause_playback(void * context);
hgs
parents: 12
diff changeset
   289
extern XAresult mmf_playitf_stop_playback(void * context);
hgs
parents: 12
diff changeset
   290
extern XAresult mmf_playitf_get_play_state(void * context, XAuint32 * pState);
hgs
parents: 12
diff changeset
   291
extern XAresult mmf_playitf_get_duration(void * context, XAmillisecond * pMsec);
hgs
parents: 12
diff changeset
   292
extern XAresult mmf_playitf_get_position(void * context, XAmillisecond * pMsec);
hgs
parents: 12
diff changeset
   293
extern XAresult mmf_playitf_register_callback(void * context, xaPlayCallback callback);
hgs
parents: 12
diff changeset
   294
extern XAresult mmf_playitf_set_callback_events_mask(void * context, XAuint32 eventflags);
hgs
parents: 12
diff changeset
   295
extern XAresult mmf_playitf_set_marker_position(void * context, XAmillisecond mSec);
hgs
parents: 12
diff changeset
   296
extern XAresult mmf_playitf_clear_marker_position(void * context);
hgs
parents: 12
diff changeset
   297
extern XAresult mmf_playitf_set_position_update_period(void * context, XAmillisecond mSec);
hgs
parents: 12
diff changeset
   298
hgs
parents: 12
diff changeset
   299
extern XAresult mmf_seekitf_set_position(void * context, XAmillisecond mSec);
hgs
parents: 12
diff changeset
   300
extern XAresult mmf_seekitf_set_playwindow(void * context, XAmillisecond start, XAmillisecond end);
hgs
parents: 12
diff changeset
   301
extern XAresult mmf_seekitf_set_repeats(void * context, XAboolean repeat);
hgs
parents: 12
diff changeset
   302
hgs
parents: 12
diff changeset
   303
extern XAresult mmf_streaminformationitf_get_numstreams(void * context, XAuint32* numstreams);
hgs
parents: 12
diff changeset
   304
extern XAresult mmf_streaminformationitf_get_streaminfo(void * context, XAuint32 streamindex,
25
hgs
parents: 21
diff changeset
   305
        XAuint32* streamtype);
19
hgs
parents: 12
diff changeset
   306
extern XAresult mmf_streaminformationitf_get_videoframesize(void * context, XAuint32* height,
25
hgs
parents: 21
diff changeset
   307
        XAuint32* width, XAuint32* frameRate);
19
hgs
parents: 12
diff changeset
   308
extern XAresult mmf_streaminformationitf_set_activestream(void * context, XAuint32 streamindex,
25
hgs
parents: 21
diff changeset
   309
        XAboolean active);
19
hgs
parents: 12
diff changeset
   310
hgs
parents: 12
diff changeset
   311
extern XAresult mmf_volumeitf_set_volume(void * context, XAuint32 volume);
hgs
parents: 12
diff changeset
   312
extern XAresult mmf_volumeitf_get_volume(void * context, XAuint32* volume);
hgs
parents: 12
diff changeset
   313
extern XAresult mmf_volumeitf_get_maxvolume(void * context, XAuint32* volume);
12
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   314
#endif /* __cplusplus */
5a06f39ad45b Revision: 201011
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   315
25
hgs
parents: 21
diff changeset
   316
#endif /* CMMFBackendEngine_H */