khronosfws/openmax_al/src/mediaplayer/xaplayitf.h
branchRCL_3
changeset 19 095bea5f582e
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/khronosfws/openmax_al/src/mediaplayer/xaplayitf.h	Tue Aug 31 15:43:02 2010 +0300
@@ -0,0 +1,106 @@
+/*
+ * 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: Play Itf Header
+ *
+ */
+
+#ifndef XAPLAYITF_H
+#define XAPLAYITF_H
+
+#include "xaadptbasectx.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;
+    /* TODO : This is no longer needed we need to get state from XAMediaPlayerImpl
+     * Delete this.*/
+    XAuint32 playbackState;
+
+    xaPlayCallback callback;
+    void *cbcontext;
+    XAuint32 eventFlags;
+    XAmillisecond markerPosition;
+    XAmillisecond positionUpdatePeriod;
+    XAboolean positionupdateOn;
+    XAmillisecond lastPosition;
+    XAboolean isMarkerPosCbSend;
+
+    /*Adaptation variables*/
+    /* TODO : This is no longer needed since we have access to XAMediaPlayerImpl
+     * Delete this.*/
+    XAAdaptationBaseCtx *adapCtx;
+
+    XAMediaPlayerImpl* pObjImpl;
+
+    } 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(XAMediaPlayerImpl *impl);
+void XAPlayItfImpl_AdaptCb(void *pHandlerCtx, XAAdaptEvent *event);
+void XAPlayItfImpl_Free(XAPlayItfImpl* self);
+
+#endif /* XAPLAYITF_H */