equal
deleted
inserted
replaced
15 * |
15 * |
16 */ |
16 */ |
17 |
17 |
18 #include <stdio.h> |
18 #include <stdio.h> |
19 #include <stdlib.h> |
19 #include <stdlib.h> |
20 #include <assert.h> |
|
21 |
20 |
22 #include "xaprefetchstatusitf.h" |
21 #include "xaprefetchstatusitf.h" |
23 |
22 |
24 #include "xaadaptationgst.h" |
23 #include "xaadaptationgst.h" |
|
24 #include "xaprefetchstatusitfadaptationmmf.h" |
|
25 |
25 |
26 |
26 |
27 |
27 static XAPrefetchStatusItfImpl* GetImpl(XAPrefetchStatusItf self) |
28 static XAPrefetchStatusItfImpl* GetImpl(XAPrefetchStatusItf self) |
28 { |
29 { |
29 if(self) |
30 if(self) |
49 /* invalid parameter */ |
50 /* invalid parameter */ |
50 DEBUG_ERR("XA_RESULT_PARAMETER_INVALID"); |
51 DEBUG_ERR("XA_RESULT_PARAMETER_INVALID"); |
51 DEBUG_API("<-XAPrefetchStatusItfImpl_GetPrefetchStatus"); |
52 DEBUG_API("<-XAPrefetchStatusItfImpl_GetPrefetchStatus"); |
52 return XA_RESULT_PARAMETER_INVALID; |
53 return XA_RESULT_PARAMETER_INVALID; |
53 } |
54 } |
54 |
55 |
55 *pStatus = impl->pStatus; |
56 if (impl->adaptationCtx->fwtype == FWMgrFWMMF) |
|
57 { |
|
58 ret = XAPrefetchStatusItfAdaptMMF_GetPrefetchStatus(impl->adaptationCtx, pStatus); |
|
59 } |
56 |
60 |
57 DEBUG_API("<-XAPrefetchStatusItfImpl_GetPrefetchStatus"); |
61 DEBUG_API("<-XAPrefetchStatusItfImpl_GetPrefetchStatus"); |
58 return ret; |
62 return ret; |
59 } |
63 } |
60 |
64 |
70 /* invalid parameter */ |
74 /* invalid parameter */ |
71 DEBUG_ERR("XA_RESULT_PARAMETER_INVALID"); |
75 DEBUG_ERR("XA_RESULT_PARAMETER_INVALID"); |
72 DEBUG_API("<-XAPrefetchStatusItfImpl_GetFillLevel"); |
76 DEBUG_API("<-XAPrefetchStatusItfImpl_GetFillLevel"); |
73 return XA_RESULT_PARAMETER_INVALID; |
77 return XA_RESULT_PARAMETER_INVALID; |
74 } |
78 } |
75 |
79 |
76 *pLevel = impl->pLevel; |
80 if (impl->adaptationCtx->fwtype == FWMgrFWMMF) |
|
81 { |
|
82 ret = XAPrefetchStatusItfAdaptMMF_GetFillLevel(impl->adaptationCtx, pLevel); |
|
83 } |
77 |
84 |
78 DEBUG_API("<-XAPrefetchStatusItfImpl_GetFillLevel"); |
85 DEBUG_API("<-XAPrefetchStatusItfImpl_GetFillLevel"); |
79 return ret; |
86 return ret; |
80 } |
87 } |
81 |
88 |
97 |
104 |
98 /* Can be null to reset callback */ |
105 /* Can be null to reset callback */ |
99 impl->callback = callback; |
106 impl->callback = callback; |
100 impl->cbcontext = pContext; |
107 impl->cbcontext = pContext; |
101 impl->cbPtrToSelf = self; |
108 impl->cbPtrToSelf = self; |
|
109 |
|
110 if (impl->adaptationCtx->fwtype == FWMgrFWMMF) |
|
111 { |
|
112 ret = XAPrefetchStatusItfAdaptMMF_RegisterCallback(impl->adaptationCtx, callback); |
|
113 } |
102 |
114 |
103 DEBUG_API("<-XAPrefetchStatusItfImpl_RegisterCallback"); |
115 DEBUG_API("<-XAPrefetchStatusItfImpl_RegisterCallback"); |
104 return ret; |
116 return ret; |
105 } |
117 } |
106 |
118 |
109 { |
121 { |
110 XAresult ret = XA_RESULT_SUCCESS; |
122 XAresult ret = XA_RESULT_SUCCESS; |
111 XAPrefetchStatusItfImpl *impl = GetImpl(self); |
123 XAPrefetchStatusItfImpl *impl = GetImpl(self); |
112 DEBUG_API("->XAPrefetchStatusItfImpl_SetCallbackEventsMask"); |
124 DEBUG_API("->XAPrefetchStatusItfImpl_SetCallbackEventsMask"); |
113 |
125 |
114 if(!impl ) |
126 if(!impl || eventFlags > (XA_PREFETCHEVENT_STATUSCHANGE|XA_PREFETCHEVENT_FILLLEVELCHANGE)) |
115 { |
127 { |
116 /* invalid parameter */ |
128 /* invalid parameter */ |
117 DEBUG_ERR("XA_RESULT_PARAMETER_INVALID"); |
129 DEBUG_ERR("XA_RESULT_PARAMETER_INVALID"); |
118 DEBUG_API("<-XAPrefetchStatusItfImpl_SetCallbackEventsMask"); |
130 DEBUG_API("<-XAPrefetchStatusItfImpl_SetCallbackEventsMask"); |
119 return XA_RESULT_PARAMETER_INVALID; |
131 return XA_RESULT_PARAMETER_INVALID; |
120 } |
132 } |
121 |
133 |
122 impl->eventFlags = eventFlags; |
134 impl->eventFlags = eventFlags; |
|
135 |
|
136 if (impl->adaptationCtx->fwtype == FWMgrFWMMF) |
|
137 { |
|
138 ret = XAPrefetchStatusItfAdaptMMF_SetCallbackEventsMask(impl->adaptationCtx, eventFlags); |
|
139 } |
123 |
140 |
124 DEBUG_API("<-XAPrefetchStatusItfImpl_SetCallbackEventsMask"); |
141 DEBUG_API("<-XAPrefetchStatusItfImpl_SetCallbackEventsMask"); |
125 return ret; |
142 return ret; |
126 } |
143 } |
127 |
144 |
160 DEBUG_API("<-XAPrefetchStatusItfImpl_SetFillUpdatePeriod"); |
177 DEBUG_API("<-XAPrefetchStatusItfImpl_SetFillUpdatePeriod"); |
161 return XA_RESULT_PARAMETER_INVALID; |
178 return XA_RESULT_PARAMETER_INVALID; |
162 } |
179 } |
163 |
180 |
164 impl->fillUpdatePeriod = period; |
181 impl->fillUpdatePeriod = period; |
|
182 |
|
183 if (impl->adaptationCtx->fwtype == FWMgrFWMMF) |
|
184 { |
|
185 ret = XAPrefetchStatusItfAdaptMMF_SetFillUpdatePeriod(impl->adaptationCtx, period); |
|
186 } |
165 |
187 |
166 DEBUG_API("<-XAPrefetchStatusItfImpl_SetFillUpdatePeriod"); |
188 DEBUG_API("<-XAPrefetchStatusItfImpl_SetFillUpdatePeriod"); |
167 return ret; |
189 return ret; |
168 } |
190 } |
169 |
191 |
227 |
249 |
228 |
250 |
229 void XAPrefetchStatusItfImpl_Free(XAPrefetchStatusItfImpl* self) |
251 void XAPrefetchStatusItfImpl_Free(XAPrefetchStatusItfImpl* self) |
230 { |
252 { |
231 DEBUG_API("->XAPrefetchStatusItfImpl_Free"); |
253 DEBUG_API("->XAPrefetchStatusItfImpl_Free"); |
232 assert(self==self->self); |
|
233 XAAdaptationBase_RemoveEventHandler( (XAAdaptationBaseCtx*)self->adaptationCtx, &XAPrefetchStatusItfImpl_AdaptCb ); |
254 XAAdaptationBase_RemoveEventHandler( (XAAdaptationBaseCtx*)self->adaptationCtx, &XAPrefetchStatusItfImpl_AdaptCb ); |
234 free(self); |
255 free(self); |
235 DEBUG_API("<-XAPrefetchStatusItfImpl_Free"); |
256 DEBUG_API("<-XAPrefetchStatusItfImpl_Free"); |
236 } |
257 } |
237 |
258 |
246 { |
267 { |
247 DEBUG_ERR("XAPrefetchStatusItfImpl_AdaptCb, invalid context pointer!"); |
268 DEBUG_ERR("XAPrefetchStatusItfImpl_AdaptCb, invalid context pointer!"); |
248 DEBUG_API("<-XAPrefetchStatusItfImpl_AdaptCb"); |
269 DEBUG_API("<-XAPrefetchStatusItfImpl_AdaptCb"); |
249 return; |
270 return; |
250 } |
271 } |
251 assert(event); |
272 |
252 if( event->eventid == XA_ADAPT_BUFFERING ) |
273 if (impl->adaptationCtx->fwtype == FWMgrFWMMF) |
253 { |
274 { |
254 /* Adaptation sends percents convert it to permille */ |
275 impl->callback(impl->cbPtrToSelf, impl->cbcontext, event->eventid); |
255 impl->fillUpdatePeriod = ((*(XAint32*)(event->data))*10); |
276 DEBUG_API("<-XAPrefetchStatusItfImpl_AdaptCb"); |
256 |
277 return; |
257 /*Check do we have to send event */ |
278 } |
258 if( impl->callback && impl->eventFlags & XA_PREFETCHEVENT_FILLLEVELCHANGE ) |
279 |
259 { |
|
260 if ( (*(XAint32*)event->data) > impl->fillUpdatePeriod / 10 ) |
|
261 { |
|
262 impl->callback(impl->cbPtrToSelf, impl->cbcontext, XA_PREFETCHEVENT_FILLLEVELCHANGE); |
|
263 } |
|
264 } |
|
265 } |
|
266 |
|
267 DEBUG_API("<-XAPrefetchStatusItfImpl_AdaptCb"); |
280 DEBUG_API("<-XAPrefetchStatusItfImpl_AdaptCb"); |
268 } |
281 } |
269 |
282 |