khronosfws/openmax_al/src/mmf_adaptation/cmmfbackendengine.h
branchRCL_3
changeset 20 0ac9a5310753
parent 19 095bea5f582e
child 21 999b2818a0eb
--- a/khronosfws/openmax_al/src/mmf_adaptation/cmmfbackendengine.h	Tue Aug 31 15:43:02 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,324 +0,0 @@
-/*
- * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
- * All rights reserved.
- * This component and the accompanying materials are made available
- * under the terms of "Eclipse Public License v1.0"
- * which accompanies this distribution, and is available
- * at the URL "http://www.eclipse.org/legal/epl-v10.html".
- *
- * Initial Contributors:
- * Nokia Corporation - initial contribution.
- *
- * Contributors:
- *
- * Description: MMF Backend Engine Header
- *
- */
-
-#ifndef CMMFBackendEngine_H
-#define CMMFBackendEngine_H
-
-#define ENABLE_GRAPHICS_SURFACE_INTEGRATION
-
-#include "openmaxalwrapper.h"
-
-#ifdef __cplusplus
-
-#include <e32base.h>
-#include <mdaaudiosampleplayer.h>  
-#include <f32file.h>
-#include <videoplayer.h>
-#include <videoplayer2.h>
-#include <e32std.h>
-#include <mmf/common/mmferrors.h>
-#include <mmf/common/mmfbase.h>
-#include <MMFMetadataEventConfigConstants.h>
-#include <mmf/common/mmfstandardcustomcommands.h>
-#ifdef ENABLE_GRAPHICS_SURFACE_INTEGRATION
-#include <graphics/surface.h> //TSurfaceId
-#include <mmf/common/mmfvideo.h> //TVideoAspectRatio
-#include <mediaclientvideodisplay.h>
-#include <surfaceeventhandler.h>
-#include <mdaaudiosampleeditor.h>
-#include <AudioInput.h>
-#include "sfmrlocaltimer.h"
-#endif
-
-// MetaDataWrite Custom Command UID
-const TUid KUidMetaDataWriteCustomCommand =
-    {
-    0x10207af9
-    };
-
-#define MAX_EXTENSION_SIZE 10
-
-class CMarkerPositionTimer;
-class CPositionUpdateTimer;
-NONSHARABLE_CLASS(CMMFBackendEngine) : public CBase,
-        public MVideoPlayerUtilityObserver,
-        public MVideoLoadingObserver,
-        public MMdaAudioPlayerCallback,
-        public MMdaObjectStateChangeObserver
-    {
-public:
-    enum TFuncInUse
-        {
-                EPlay = 0, 
-                ERecord
-        };
-
-    enum TUriType
-        {
-                ELocal = 0, 
-                EStreaming
-        };
-
-    enum TMMFUtiltyInUse
-        {
-        ENoUtility,
-        EVideoPlayerUtility,
-        EAudioPlayerUtility,
-        EAudioRecorderUtility
-        };
-
-    enum TRecorderState
-        {
-                ERecorderNotReady = 0, 
-                ERecorderOpen, 
-                ERecorderRecording
-        };
-
-public:
-
-    static CMMFBackendEngine* NewL();
-    ~CMMFBackendEngine();
-
-    TInt SetFileName(char* uri, XAuint32 format, TFuncInUse func);
-    void Close();
-    void Destroy();
-    TInt SetRecorderState(TRecorderState state, XAboolean stopCalled);
-    TInt GetRecordPosition(XAuint64* position);
-    TInt SetPositionUpdatePerioed(XAmillisecond period);
-    TInt SetAdaptContext(void* adaptcontext);
-    TInt GetCodecId(XAuint32* encoderId);
-    TInt GetBitRate(XAuint32* bitrate);
-    TInt GetSampleRate(XAmilliHertz* samplerate);
-    TInt GetChannels(XAuint32* channels);
-    TInt SetDestinationBitRate(XAuint32* bitrate);
-    TInt SetDestinationSampleRate(XAmilliHertz* samplerate);
-    TInt SetDestinationChannels(XAuint32* channels);
-
-    XAresult CreateAndConfigureWindowL();
-    XAresult SetNativeDisplayInformation(void* display_info);
-    XAresult ResumePlayback();
-    XAresult PausePlayback();
-    XAresult StopPlayback();
-    XAresult GetPlayState(XAuint32 *pState);
-    XAresult GetDuration(XAmillisecond *pMsec);
-    XAresult GetPosition(XAmillisecond *pMsec);
-    XAresult SetPlayAdaptContext(void * adaptcontext);
-    XAresult RegisterCallback(xaPlayCallback cbFunction);
-    XAresult SetCallbackEventsMask(XAuint32 eventflags);
-    XAresult SetMarkerPosition(XAmillisecond mSec);
-    XAresult ClearMarkerPosition();
-    XAresult SetPositionUpdatePeriod(XAmillisecond mSec);
-
-    XAresult SetPosition(XAmillisecond pMsec);
-    XAresult SetRepeats(XAboolean repeat);
-    XAresult SetPlayWindow(XAmillisecond start, XAmillisecond end);
-
-    XAresult GetNumStreams(XAuint32* numstreams);
-    XAresult GetStreamInfo(XAuint32 streamindex, XAuint32* streamtype);
-    XAresult GetVideoFrameSize(XAuint32* height, XAuint32* width,
-            XAuint32* frameRate);
-    XAresult SetActiveState(XAuint32 streamindex, XAboolean active);
-
-    XAresult SetVolume(XAuint32 volume);
-    XAresult GetVolume(XAuint32* volume);
-    XAresult GetMaxVolume(XAuint32* maxvolume);
-
-    XAresult SetPlaybackRate(XAint16 rate);
-    XAresult GetPlaybackRateCapabilities(XAboolean* forward, XAboolean* backward);
-
-public:
-
-    // MMdaObjectStateChangeObserver
-    void MoscoStateChangeEvent(CBase* aObject, TInt aPreviousState,
-            TInt aCurrentState, TInt aErrorcCode);
-
-    //MMdaAudioPlayerCallback
-    void MapcInitComplete(TInt aError,
-            const TTimeIntervalMicroSeconds& aDuration);
-    void MapcPlayComplete(TInt aError);
-
-    //From MVidePlayerUtilityObserver
-    void MvpuoOpenComplete(TInt aError);
-    void MvpuoPrepareComplete(TInt aError);
-    void MvpuoFrameReady(CFbsBitmap& aFrame, TInt aError);
-    void MvpuoPlayComplete(TInt aError);
-    void MvpuoEvent(const TMMFEvent& aEvent);
-
-    // From MRebufferCallback
-    void MvloLoadingStarted();
-    void MvloLoadingComplete();
-
-private:
-    enum TPlayerState
-        {
-        EPlayerClosed,
-        EPlayerOpened,
-        EPlayerPrepared,
-        EPlayerPaused,
-        EPlayerPlaying,
-        };
-
-private:
-    CMMFBackendEngine();
-    void ConstructL();
-    void InitAudioRecorderUtilityL();
-    void InitAudioPlayerUtilityL();
-    void InitVideoPlayerUtilityL();
-    void InitPlayerTimersL();
-    TInt DetermineAPIToUse(char *uri, TFuncInUse aFunc);
-    XAresult DoHandlePlayItfAttributesChanged();
-    void DoPostEvent(XAuint32 event);
-    TInt InitializeURIForMMFUtil(char *uri);
-
-private:
-    CVideoPlayerUtility2* iVideoPlayer;
-    CBase* iBaseVideoPlayer;
-    CMdaAudioPlayerUtility* iAudioPlayer;
-    CBase* iBaseAudioPlayer;
-    CMdaAudioRecorderUtility* iAudioRecorder;
-    CBase* iBaseAudioRecorder;
-    TFileName iFileName;
-    TInt iAPIBeingUsed;
-    TInt iPreviousRecordState;
-    TInt iCurrentRecordState;
-    TInt iErrorCode;
-    TRecorderState iRecordState;
-    LocalTimer* iPositionUpdateTimer;
-    TUint64 iTimerDelay;
-    void* iAdaptContext;
-    XAuint32 iFileFormat;
-    TInt iPauseSupportMP4;
-    CActiveSchedulerWait* iActiveSchedulerWait;
-    CAudioInput* iAudioInputRecord;
-#ifdef USE_LOCAL_WINDOW_RESOURCES
-    CMediaClientVideoDisplay* iMediaClientVideoDisplay;
-    TRect m_clipRect;
-    TRect m_videoExtent;
-    TRect m_cropRegion;
-    TVideoAspectRatio m_pixelAspectRatio;
-    RWindow m_Window;
-    TRect m_cropRect;
-    TSurfaceId m_surfaceId;
-    TVideoRotation m_rotation;
-    TReal32 m_scaleWidth;
-    TReal32 m_scaleHeight;
-    TInt m_horizPos;
-    TInt m_vertPos;
-    TInt m_displayId;
-    /*TBool m_bWindowReferencePassed;*/
-    RWsSession m_ws;
-#endif /* USE_LOCAL_WINDOW_RESOURCES */
-
-    /* Holds duration of the media clip opend for playback */
-    TTimeIntervalMicroSeconds iMediaDuration;
-    /* Holds the playback position to be used for next play command */
-    TTimeIntervalMicroSeconds iPlaybackHead;
-    /* Holds current XA state of media player object */
-    XAuint32 iMediaPlayerState;
-    /* Owns */
-    CMarkerPositionTimer* iMarkerPositionTimer;
-    CPositionUpdateTimer* iPlayItfPositionUpdateTimer;
-    /* Owns */
-    CWsScreenDevice* m_pScr;
-    /* Holds mmf state of media player object */
-    TPlayerState iMMFPlayerState;
-
-    /* Property set by client */
-    XAuint32 iPlayItfEventFlags;
-    /* Property set by client */
-    xaPlayCallback iPlayItfCBFunction;
-    /* Property set by client */
-    XAmillisecond iMarkerPosition;
-    /* Property set by client */
-    XAmillisecond iPositionUpdatePeriod;
-    /* Property set by client (for file without file:///) */
-    HBufC* iUri; /* owns */
-    TPtr iUriPtr;
-    TUriType iUriType;
-    /* Property set by client */
-    RWsSession* m_pWs;
-    /* Property set by client */
-    RWindow* m_pWindow;
-    };
-
-#else  /* __cplusplus */
-
-extern int mmf_backend_engine_init(void** engine);
-extern int mmf_backend_engine_deinit(void* engine);
-
-extern int mmf_set_recorder_uri(void* context, char* uri, XAuint32 format);
-
-extern void mmf_close(void* context);
-
-extern int mmf_set_adapt_context(void* context, void* adaptcontext);
-
-extern int mmf_start_recording(void* context);
-
-extern int mmf_stop_recording(void* context, XAboolean stopCalled);
-
-extern int mmf_get_record_position(void* context, XAuint64* position);
-
-extern int mmf_set_record_position_update_period(void* context, XAmillisecond msec);
-
-extern int mmf_get_codec_id(void* context, XAuint32* encoderId);
-extern int mmf_get_channels(void* context, XAuint32* channelsIn);
-extern int mmf_get_samplerate(void* context, XAmilliHertz* sampleRate);
-extern int mmf_get_bitrate(void* context, XAuint32* bitRate);
-extern int mmf_set_destination_channels(void* context, XAuint32* channelsIn);
-extern int mmf_set_destination_samplerate(void* context, XAmilliHertz* sampleRate);
-extern int mmf_set_destination_bitrate(void* context, XAuint32* bitRate);
-
-extern XAresult mmf_set_play_adapt_context(void * context, void * adaptcontext);
-extern XAresult mmf_set_player_uri(void * context, char * uri, XAuint32 format);
-/*extern XAresult mmf_set_window_handle(void * context, void * display_infos);*/
-extern XAresult mmf_setup_native_display(void * context, void * display_info);
-
-/*Functions for XAPlayItf*/
-extern XAresult mmf_playitf_resume_playback(void * context);
-extern XAresult mmf_playitf_pause_playback(void * context);
-extern XAresult mmf_playitf_stop_playback(void * context);
-extern XAresult mmf_playitf_get_play_state(void * context, XAuint32 * pState);
-extern XAresult mmf_playitf_get_duration(void * context, XAmillisecond * pMsec);
-extern XAresult mmf_playitf_get_position(void * context, XAmillisecond * pMsec);
-extern XAresult mmf_playitf_register_callback(void * context, xaPlayCallback callback);
-extern XAresult mmf_playitf_set_callback_events_mask(void * context, XAuint32 eventflags);
-extern XAresult mmf_playitf_set_marker_position(void * context, XAmillisecond mSec);
-extern XAresult mmf_playitf_clear_marker_position(void * context);
-extern XAresult mmf_playitf_set_position_update_period(void * context, XAmillisecond mSec);
-
-extern XAresult mmf_seekitf_set_position(void * context, XAmillisecond mSec);
-extern XAresult mmf_seekitf_set_playwindow(void * context, XAmillisecond start, XAmillisecond end);
-extern XAresult mmf_seekitf_set_repeats(void * context, XAboolean repeat);
-
-extern XAresult mmf_streaminformationitf_get_numstreams(void * context, XAuint32* numstreams);
-extern XAresult mmf_streaminformationitf_get_streaminfo(void * context, XAuint32 streamindex,
-        XAuint32* streamtype);
-extern XAresult mmf_streaminformationitf_get_videoframesize(void * context, XAuint32* height,
-        XAuint32* width, XAuint32* frameRate);
-extern XAresult mmf_streaminformationitf_set_activestream(void * context, XAuint32 streamindex,
-        XAboolean active);
-
-extern XAresult mmf_volumeitf_set_volume(void * context, XAuint32 volume);
-extern XAresult mmf_volumeitf_get_volume(void * context, XAuint32* volume);
-extern XAresult mmf_volumeitf_get_maxvolume(void * context, XAuint32* volume);
-extern XAresult mmf_playbackrateitf_set_playbackrate(void * context, XAint16 rate);
-extern XAresult mmf_playbackrateitf_get_playbackratecaps(void * context,
-                                XAboolean* forward, XAboolean* backward);
-
-#endif /* __cplusplus */
-
-#endif /* CMMFBackendEngine_H */