khronosfws/openmax_al/src/mediaplayer/xaplayitf.h
changeset 12 5a06f39ad45b
child 16 43d09473c595
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/khronosfws/openmax_al/src/mediaplayer/xaplayitf.h	Fri Apr 16 15:29:42 2010 +0300
@@ -0,0 +1,113 @@
+/*
+* 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: 
+*
+*/
+
+#ifndef XAPLAYITF_H
+#define XAPLAYITF_H
+
+#include "openmaxalwrapper.h"
+#include "xaglobals.h"
+#ifdef _GSTREAMER_BACKEND_
+#include "XAAdaptationContextBase.h"
+#endif
+#include "xaadaptationcontextbasemmf.h"
+#include "xamediaplayer.h"
+
+
+/** MACROS **/
+#define NO_POSITION XA_TIME_UNKNOWN
+#define PLAYITF_DEFAULT_UPDATE_PERIOD 1000
+#define START_POSITION 0
+
+/** TYPES **/
+
+/** ENUMERATIONS **/
+
+/** STRUCTURES **/
+/* Definition of XAPlayItf implementation */
+typedef struct XAPlayItfImpl_
+{
+    /* parent interface */
+    struct XAPlayItf_ itf;
+    /* pointer to self */
+    struct XAPlayItfImpl_* self;
+
+    /* variables */
+    XAPlayItf cbPtrToSelf;
+    XAuint32 playbackState;
+    xaPlayCallback callback;
+    void *cbcontext;
+    XAuint32 eventFlags;
+    XAmillisecond markerPosition;
+    XAmillisecond positionUpdatePeriod;
+    XAboolean     positionupdateOn;
+    XAmillisecond lastPosition;
+    XAboolean isMarkerPosCbSend;
+
+#ifdef _GSTREAMER_BACKEND_
+    /*Adaptation variables*/
+    XAAdaptationBaseCtx *adapCtx;
+#endif
+    XAAdaptationBaseMMFCtx *adaptCtxMMF;
+    XAboolean isMMFPlayback;
+
+} XAPlayItfImpl;
+
+/** METHODS **/
+
+/* Base interface XAPlayItf implementation */
+XAresult XAPlayItfImpl_SetPlayState(XAPlayItf self, XAuint32 state);
+
+XAresult XAPlayItfImpl_GetPlayState(XAPlayItf self, XAuint32 *pState);
+
+XAresult XAPlayItfImpl_GetDuration(XAPlayItf self, XAmillisecond *pMsec);
+
+XAresult XAPlayItfImpl_GetPosition(XAPlayItf self, XAmillisecond *pMsec);
+
+XAresult XAPlayItfImpl_RegisterCallback(XAPlayItf self, xaPlayCallback callback,
+                                        void *pContext);
+
+XAresult XAPlayItfImpl_SetCallbackEventsMask(XAPlayItf self, XAuint32 eventFlags);
+
+XAresult XAPlayItfImpl_GetCallbackEventsMask(XAPlayItf self, XAuint32 *pEventFlags);
+
+XAresult XAPlayItfImpl_SetMarkerPosition(XAPlayItf self, XAmillisecond mSec);
+
+XAresult XAPlayItfImpl_ClearMarkerPosition(XAPlayItf self);
+
+XAresult XAPlayItfImpl_GetMarkerPosition(XAPlayItf self, XAmillisecond *pMsec);
+
+XAresult XAPlayItfImpl_SetPositionUpdatePeriod(XAPlayItf self, XAmillisecond mSec);
+
+XAresult XAPlayItfImpl_GetPositionUpdatePeriod(XAPlayItf self, XAmillisecond *pMsec);
+
+
+/*
+ * implementation-specific methods
+ */
+XAPlayItfImpl* XAPlayItfImpl_Create(
+#ifdef _GSTREAMER_BACKEND_
+        XAAdaptationBaseCtx *adapCtx,
+#endif
+        XAAdaptationBaseMMFCtx *adaptationCtxMMF );
+#ifdef _GSTREAMER_BACKEND_
+void XAPlayItfImpl_AdaptCb( void *pHandlerCtx, XAAdaptEvent *event );
+#endif
+XAresult XAPlayItfImpl_DeterminePlaybackEngine(XAPlayItf self, XADataLocator_URI *uri);
+void XAPlayItfImpl_Free(XAPlayItfImpl* self);
+
+
+#endif /* XAPLAYITF_H */