26 |
26 |
27 /*forward declaration of position updater callback*/ |
27 /*forward declaration of position updater callback*/ |
28 gboolean XAPlayItfAdapt_PositionUpdate(gpointer ctx); |
28 gboolean XAPlayItfAdapt_PositionUpdate(gpointer ctx); |
29 |
29 |
30 /* |
30 /* |
31 * XAresult XAPlayItfAdapt_SetPlayState(XAAdaptationBaseCtx *bCtx, XAuint32 state) |
31 * XAresult XAPlayItfAdaptMMF_SetPlayState(XAAdaptationBaseCtx *bCtx, XAuint32 state) |
32 * Sets play state to GStreamer. |
32 * Sets play state to GStreamer. |
33 * @param XAAdaptationBaseCtx *bCtx - Adaptation context, this will be casted to correct type regarding to contextID |
33 * @param XAAdaptationBaseCtx *bCtx - Adaptation context, this will be casted to correct type regarding to contextID |
34 * XAuint32 state - Play state to be set |
34 * XAuint32 state - Play state to be set |
35 * @return XAresult ret - Success value |
35 * @return XAresult ret - Success value |
36 */ |
36 */ |
37 XAresult XAPlayItfAdaptMMF_SetPlayState(XAAdaptationBaseMMFCtx *bCtx, XAuint32 state) |
37 XAresult XAPlayItfAdaptMMF_SetPlayState(XAAdaptationBaseCtx *bCtx, XAuint32 state) |
38 { |
38 { |
39 XAresult ret = XA_RESULT_SUCCESS; |
39 XAresult ret = XA_RESULT_SUCCESS; |
40 |
40 XAMediaPlayerAdaptationMMFCtx* mCtx = (XAMediaPlayerAdaptationMMFCtx*) bCtx; |
41 XAMediaPlayerAdaptationMMFCtx* mCtx = NULL; |
41 |
42 |
42 DEBUG_API_A1("->XAPlayItfAdaptMMF_SetPlayState %s",PLAYSTATENAME(state)); |
43 |
43 |
44 |
44 /* bCtx and parameter pointer validation happens in the calling function. |
45 DEBUG_API_A1("->XAPlayItfAdapt_SetPlayState %s",PLAYSTATENAME(state)); |
45 * We don't need to repeat it here*/ |
46 |
|
47 if(!bCtx) |
|
48 { |
|
49 DEBUG_ERR("XA_RESULT_PARAMETER_INVALID"); |
|
50 return XA_RESULT_PARAMETER_INVALID; |
|
51 } |
|
52 |
|
53 mCtx = (XAMediaPlayerAdaptationMMFCtx*) bCtx; |
|
54 switch ( state ) |
46 switch ( state ) |
55 { |
47 { |
56 case XA_PLAYSTATE_STOPPED: |
48 case XA_PLAYSTATE_STOPPED: |
57 { |
49 { |
58 mmf_stop_playback(mCtx->mmfContext); |
50 ret = mmf_playitf_stop_playback(mCtx->mmfContext); |
59 mmf_close(mCtx->mmfContext); |
|
60 break; |
51 break; |
61 } |
52 } |
62 case XA_PLAYSTATE_PAUSED: |
53 case XA_PLAYSTATE_PAUSED: |
63 mmf_pause_playback(mCtx->mmfContext); |
54 ret = mmf_playitf_pause_playback(mCtx->mmfContext); |
64 break; |
55 break; |
65 case XA_PLAYSTATE_PLAYING: |
56 case XA_PLAYSTATE_PLAYING: |
66 { |
57 { |
67 mmf_resume_playback(mCtx->mmfContext); |
58 ret = mmf_playitf_resume_playback(mCtx->mmfContext); |
68 break; |
59 break; |
69 } |
60 } |
70 default: |
61 default: |
71 ret = XA_RESULT_PARAMETER_INVALID; |
62 ret = XA_RESULT_PARAMETER_INVALID; |
72 break; |
63 break; |
73 } |
64 } |
74 |
65 |
75 DEBUG_API("<-XAPlayItfAdapt_SetPlayState"); |
66 DEBUG_API("<-XAPlayItfAdaptMMF_SetPlayState"); |
76 return ret; |
67 return ret; |
77 } |
68 } |
78 |
69 |
79 /* |
70 /* |
80 * XAresult XAPlayItfAdapt_GetDuration(XAAdaptationBaseCtx *bCtx, XAmillisecond *pMsec) |
71 * XAresult XAPlayItfAdaptMMF_GetPlayState(XAAdaptationBaseCtx *bCtx, XAuint32 *pState) |
|
72 * @param XAAdaptationBaseCtx *bCtx - Adaptation context, this will be casted to correct type regarding to contextID |
|
73 * XAuint32 *state - XAmillisecond *pMsec - Pointer where to store play state |
|
74 * @return XAresult ret - Success value |
|
75 */ |
|
76 XAresult XAPlayItfAdaptMMF_GetPlayState(XAAdaptationBaseCtx *bCtx, XAuint32 *pState) |
|
77 { |
|
78 XAresult ret = XA_RESULT_SUCCESS; |
|
79 XAMediaPlayerAdaptationMMFCtx* mCtx = (XAMediaPlayerAdaptationMMFCtx*) bCtx; |
|
80 |
|
81 DEBUG_API("->XAPlayItfAdaptMMF_GetPlayState"); |
|
82 |
|
83 /* If playhead reaches eof, state will transition to paused. |
|
84 * This object does not have visibility to callback*/ |
|
85 ret = mmf_playitf_get_play_state(mCtx->mmfContext, pState); |
|
86 |
|
87 DEBUG_API("<-XAPlayItfAdaptMMF_GetPlayState"); |
|
88 return ret; |
|
89 |
|
90 } |
|
91 |
|
92 /* |
|
93 * XAresult XAPlayItfAdaptMMF_GetDuration(XAAdaptationBaseCtx *bCtx, XAmillisecond *pMsec) |
81 * @param XAAdaptationBaseCtx *bCtx - Adaptation context, this will be casted to correct type regarding to contextID |
94 * @param XAAdaptationBaseCtx *bCtx - Adaptation context, this will be casted to correct type regarding to contextID |
82 * XAmillisecond *pMsec - Pointer where to store duration of stream. |
95 * XAmillisecond *pMsec - Pointer where to store duration of stream. |
83 * @return XAresult ret - Success value |
96 * @return XAresult ret - Success value |
84 */ |
97 */ |
85 XAresult XAPlayItfAdaptMMF_GetDuration(XAAdaptationBaseMMFCtx *bCtx, XAmillisecond *pMsec) |
98 XAresult XAPlayItfAdaptMMF_GetDuration(XAAdaptationBaseCtx *bCtx, XAmillisecond *pMsec) |
86 { |
99 { |
87 XAresult ret = XA_RESULT_SUCCESS; |
100 XAresult ret = XA_RESULT_SUCCESS; |
88 |
101 XAMediaPlayerAdaptationMMFCtx* mCtx = (XAMediaPlayerAdaptationMMFCtx*) bCtx; |
89 DEBUG_API("->XAPlayItfAdapt_GetDuration"); |
102 |
90 |
103 DEBUG_API("->XAPlayItfAdaptMMF_GetDuration"); |
91 if(!bCtx) |
104 |
92 { |
105 ret = mmf_playitf_get_duration(mCtx->mmfContext, pMsec); |
93 DEBUG_ERR("XA_RESULT_PARAMETER_INVALID"); |
106 |
94 /* invalid parameter */ |
107 DEBUG_API("<-XAPlayItfAdaptMMF_GetDuration"); |
95 return XA_RESULT_PARAMETER_INVALID; |
108 return ret; |
96 } |
109 } |
97 |
110 |
98 |
111 /* |
99 DEBUG_API("<-XAPlayItfAdapt_GetDuration"); |
112 * XAresult XAPlayItfAdaptMMF_GetPosition(XAAdaptationBaseCtx *bCtx, XAmillisecond *pMsec) |
100 return ret; |
|
101 } |
|
102 |
|
103 /* |
|
104 * XAresult XAPlayItfAdapt_GetPosition(XAAdaptationBaseCtx *bCtx, XAmillisecond *pMsec) |
|
105 * @param XAAdaptationBaseCtx *bCtx - Adaptation context, this will be casted to correct type regarding to contextID value |
113 * @param XAAdaptationBaseCtx *bCtx - Adaptation context, this will be casted to correct type regarding to contextID value |
106 * XAmillisecond *pMsec - Pointer where to store current position in stream. |
114 * XAmillisecond *pMsec - Pointer where to store current position in stream. |
107 * @return XAresult ret - Success value |
115 * @return XAresult ret - Success value |
108 */ |
116 */ |
109 XAresult XAPlayItfAdaptMMF_GetPosition(XAAdaptationBaseMMFCtx *bCtx, XAmillisecond *pMsec) |
117 XAresult XAPlayItfAdaptMMF_GetPosition(XAAdaptationBaseCtx *bCtx, XAmillisecond *pMsec) |
110 { |
118 { |
111 XAresult ret = XA_RESULT_SUCCESS; |
119 XAresult ret = XA_RESULT_SUCCESS; |
112 |
120 XAMediaPlayerAdaptationMMFCtx* mCtx = (XAMediaPlayerAdaptationMMFCtx*) bCtx; |
113 DEBUG_API("->XAPlayItfAdapt_GetPosition"); |
121 |
114 |
122 DEBUG_API("->XAPlayItfAdaptMMF_GetPosition"); |
115 if(!bCtx) |
123 |
116 { |
124 ret = mmf_playitf_get_position(mCtx->mmfContext, pMsec); |
117 DEBUG_ERR("XA_RESULT_PARAMETER_INVALID"); |
125 |
118 /* invalid parameter */ |
126 DEBUG_API("<-XAPlayItfAdaptMMF_GetPosition"); |
119 return XA_RESULT_PARAMETER_INVALID; |
127 return ret; |
120 } |
128 } |
121 |
129 |
122 DEBUG_API("<-XAPlayItfAdapt_GetPosition"); |
130 /* |
123 return ret; |
131 * XAresult XAPlayItfAdaptMMF_RegisterCallback(XAAdaptationBaseCtx *bCtx, xaPlayCallback callback) |
124 } |
132 * Description: Sets the playback callback function. |
125 |
133 */ |
126 /* |
134 XAresult XAPlayItfAdaptMMF_RegisterCallback(XAAdaptationBaseCtx *bCtx, xaPlayCallback callback) |
127 * XAresult XAPlayItfAdapt_EnablePositionTracking |
135 { |
128 * Enable/disable periodic position tracking callbacks |
136 XAresult ret = XA_RESULT_SUCCESS; |
129 */ |
137 XAMediaPlayerAdaptationMMFCtx* mCtx = (XAMediaPlayerAdaptationMMFCtx*) bCtx; |
130 XAresult XAPlayItfAdaptMMF_EnablePositionTracking(XAAdaptationBaseMMFCtx *bCtx, XAboolean enable) |
138 |
131 { |
139 DEBUG_API("->XAPlayItfAdaptMMF_RegisterCallback"); |
132 DEBUG_API_A1("->XAPlayItfAdapt_EnablePositionTracking (enable: %d)", (int)enable); |
140 |
133 if(!bCtx) |
141 ret = mmf_playitf_register_callback(mCtx->mmfContext, callback); |
134 { |
142 |
135 DEBUG_ERR("XA_RESULT_PARAMETER_INVALID"); |
143 DEBUG_API("<-XAPlayItfAdaptMMF_RegisterCallback"); |
136 /* invalid parameter */ |
144 return ret; |
137 return XA_RESULT_PARAMETER_INVALID; |
145 } |
138 } |
146 |
139 |
147 /** |
140 DEBUG_API("<-XAPlayItfAdapt_EnablePositionTracking"); |
148 * XAresult XAPlayItfAdaptMMF_SetCallbackEventsMask(XAAdaptationBaseCtx *bCtx, XAuint32 eventFlags) |
141 return XA_RESULT_SUCCESS; |
149 * Description: Enables/disables notification of playback events. |
142 } |
150 **/ |
143 |
151 XAresult XAPlayItfAdaptMMF_SetCallbackEventsMask(XAAdaptationBaseCtx *bCtx, XAuint32 eventFlags) |
|
152 { |
|
153 XAresult ret = XA_RESULT_SUCCESS; |
|
154 XAMediaPlayerAdaptationMMFCtx* mCtx = (XAMediaPlayerAdaptationMMFCtx*) bCtx; |
|
155 |
|
156 DEBUG_API("->XAPlayItfAdaptMMF_SetCallbackEventsMask"); |
|
157 |
|
158 ret = mmf_playitf_set_callback_events_mask(mCtx->mmfContext, eventFlags); |
|
159 |
|
160 DEBUG_API("<-XAPlayItfAdaptMMF_SetCallbackEventsMask"); |
|
161 return ret; |
|
162 } |
|
163 |
|
164 /** |
|
165 * XAresult XAPlayItfAdaptMMF_SetMarkerPosition(XAAdaptationBaseCtx *bCtx, XAmillisecond mSec) |
|
166 * Description: Sets marker position. |
|
167 **/ |
|
168 XAresult XAPlayItfAdaptMMF_SetMarkerPosition(XAAdaptationBaseCtx *bCtx, XAmillisecond mSec) |
|
169 { |
|
170 XAresult ret = XA_RESULT_SUCCESS; |
|
171 XAMediaPlayerAdaptationMMFCtx* mCtx = (XAMediaPlayerAdaptationMMFCtx*) bCtx; |
|
172 |
|
173 DEBUG_API("->XAPlayItfAdaptMMF_SetMarkerPosition"); |
|
174 |
|
175 ret = mmf_playitf_set_marker_position(mCtx->mmfContext, mSec); |
|
176 |
|
177 DEBUG_API("<-XAPlayItfAdaptMMF_SetMarkerPosition"); |
|
178 return ret; |
|
179 } |
|
180 |
|
181 /** |
|
182 * XAresult XAPlayItfAdaptMMF_SetCallbackEventsMask(XAAdaptationBaseCtx *bCtx, XAuint32 eventFlags) |
|
183 * Description: Clears marker position. |
|
184 **/ |
|
185 XAresult XAPlayItfAdaptMMF_ClearMarkerPosition(XAAdaptationBaseCtx *bCtx) |
|
186 { |
|
187 XAresult ret = XA_RESULT_SUCCESS; |
|
188 XAMediaPlayerAdaptationMMFCtx* mCtx = (XAMediaPlayerAdaptationMMFCtx*) bCtx; |
|
189 |
|
190 DEBUG_API("->XAPlayItfAdaptMMF_ClearMarkerPosition"); |
|
191 |
|
192 ret = mmf_playitf_clear_marker_position(mCtx->mmfContext); |
|
193 |
|
194 DEBUG_API("<-XAPlayItfAdaptMMF_ClearMarkerPosition"); |
|
195 return ret; |
|
196 } |
|
197 |
|
198 /** |
|
199 * XAPlayItfAdaptMMF_SetPositionUpdatePeriod(XAAdaptationBaseCtx *bCtx, XAmillisecond mSec) |
|
200 * Description: Sets position update period. |
|
201 **/ |
|
202 XAresult XAPlayItfAdaptMMF_SetPositionUpdatePeriod(XAAdaptationBaseCtx *bCtx, XAmillisecond mSec) |
|
203 { |
|
204 XAresult ret = XA_RESULT_SUCCESS; |
|
205 XAMediaPlayerAdaptationMMFCtx* mCtx = (XAMediaPlayerAdaptationMMFCtx*) bCtx; |
|
206 |
|
207 DEBUG_API("->XAPlayItfAdaptMMF_SetPositionUpdatePeriod"); |
|
208 |
|
209 ret = mmf_playitf_set_position_update_period(mCtx->mmfContext, mSec); |
|
210 |
|
211 DEBUG_API("<-XAPlayItfAdaptMMF_SetPositionUpdatePeriod"); |
|
212 return ret; |
|
213 } |