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 #include "xarecorditf.h" |
20 #include "xarecorditf.h" |
22 |
21 |
23 #include "xarecorditfadaptation.h" |
22 #include "xarecorditfadaptation.h" |
24 |
23 |
25 #include "xarecorditfadaptationmmf.h" |
24 #include "xarecorditfadaptationmmf.h" |
236 XAuint32 eventFlags) |
235 XAuint32 eventFlags) |
237 { |
236 { |
238 XAresult ret = XA_RESULT_SUCCESS; |
237 XAresult ret = XA_RESULT_SUCCESS; |
239 XARecordItfImpl* impl = GetImpl(self); |
238 XARecordItfImpl* impl = GetImpl(self); |
240 DEBUG_API_A1("->XARecordItfImpl_SetCallbackEventsMask- %lu", eventFlags); |
239 DEBUG_API_A1("->XARecordItfImpl_SetCallbackEventsMask- %lu", eventFlags); |
241 XA_IMPL_THREAD_SAFETY_ENTRY(XATSMediaRecorder); |
240 //XA_IMPL_THREAD_SAFETY_ENTRY(XATSMediaRecorder); |
242 |
241 |
243 if (!impl || (eventFlags > (XA_RECORDEVENT_HEADATLIMIT |
242 if (!impl || (eventFlags > (XA_RECORDEVENT_HEADATLIMIT |
244 | XA_RECORDEVENT_HEADATMARKER | XA_RECORDEVENT_HEADATNEWPOS |
243 | XA_RECORDEVENT_HEADATMARKER | XA_RECORDEVENT_HEADATNEWPOS |
245 | XA_RECORDEVENT_HEADMOVING | XA_RECORDEVENT_HEADSTALLED |
244 | XA_RECORDEVENT_HEADMOVING | XA_RECORDEVENT_HEADSTALLED |
246 | XA_RECORDEVENT_BUFFER_FULL))) |
245 | XA_RECORDEVENT_BUFFER_FULL))) |
304 { |
303 { |
305 impl->positionupdateOn = XA_BOOLEAN_FALSE; |
304 impl->positionupdateOn = XA_BOOLEAN_FALSE; |
306 } |
305 } |
307 } |
306 } |
308 } |
307 } |
309 XA_IMPL_THREAD_SAFETY_EXIT(XATSMediaRecorder); |
308 //XA_IMPL_THREAD_SAFETY_EXIT(XATSMediaRecorder); |
310 DEBUG_API("<-XARecordItfImpl_SetCallbackEventsMask"); |
309 DEBUG_API("<-XARecordItfImpl_SetCallbackEventsMask"); |
311 return ret; |
310 return ret; |
312 } |
311 } |
313 |
312 |
314 /** |
313 /** |
321 { |
320 { |
322 XAresult ret = XA_RESULT_SUCCESS; |
321 XAresult ret = XA_RESULT_SUCCESS; |
323 XARecordItfImpl *impl = GetImpl(self); |
322 XARecordItfImpl *impl = GetImpl(self); |
324 DEBUG_API("->XARecordItfImpl_GetCallbackEventsMask"); |
323 DEBUG_API("->XARecordItfImpl_GetCallbackEventsMask"); |
325 |
324 |
326 DEBUG_INFO_A1("pEventFlags - %u", pEventFlags); |
325 DEBUG_INFO_A1("pEventFlags - %u", (int) pEventFlags); |
327 |
326 |
328 if (!impl || !pEventFlags) |
327 if (!impl || !pEventFlags) |
329 { |
328 { |
330 DEBUG_ERR("XA_RESULT_PARAMETER_INVALID"); |
329 DEBUG_ERR("XA_RESULT_PARAMETER_INVALID"); |
331 DEBUG_API("<-XARecordItfImpl_GetCallbackEventsMask"); |
330 DEBUG_API("<-XARecordItfImpl_GetCallbackEventsMask"); |
405 DEBUG_ERR("XA_RESULT_PARAMETER_INVALID"); |
404 DEBUG_ERR("XA_RESULT_PARAMETER_INVALID"); |
406 DEBUG_API("<-XARecordItfImpl_GetMarkerPosition"); |
405 DEBUG_API("<-XARecordItfImpl_GetMarkerPosition"); |
407 /* invalid parameter */ |
406 /* invalid parameter */ |
408 return XA_RESULT_PARAMETER_INVALID; |
407 return XA_RESULT_PARAMETER_INVALID; |
409 } |
408 } |
|
409 |
410 if (impl->markerPosition == NO_POSITION) |
410 if (impl->markerPosition == NO_POSITION) |
411 { |
411 { |
412 DEBUG_ERR("No marker position set."); |
412 DEBUG_ERR("No marker position set."); |
413 return XA_RESULT_PRECONDITIONS_VIOLATED; |
413 return XA_RESULT_PRECONDITIONS_VIOLATED; |
414 } |
414 } |
531 * Description: Free all resources reserved at XARecordItfImpl_Create |
531 * Description: Free all resources reserved at XARecordItfImpl_Create |
532 **/ |
532 **/ |
533 void XARecordItfImpl_Free(XARecordItfImpl* self) |
533 void XARecordItfImpl_Free(XARecordItfImpl* self) |
534 { |
534 { |
535 DEBUG_API("->XARecordItfImpl_Free"); |
535 DEBUG_API("->XARecordItfImpl_Free"); |
536 assert( self==self->self ); |
|
537 XAAdaptationBase_RemoveEventHandler(self->adapCtx, |
536 XAAdaptationBase_RemoveEventHandler(self->adapCtx, |
538 &XARecordItfImpl_AdaptCb); |
537 &XARecordItfImpl_AdaptCb); |
539 free(self); |
538 free(self); |
540 DEBUG_API("<-XARecordItfImpl_Free"); |
539 DEBUG_API("<-XARecordItfImpl_Free"); |
541 } |
540 } |
552 { |
551 { |
553 DEBUG_ERR("XARecordItfImpl_AdaptCb, invalid context pointer!"); |
552 DEBUG_ERR("XARecordItfImpl_AdaptCb, invalid context pointer!"); |
554 DEBUG_API("<-XARecordItfImpl_AdaptCb"); |
553 DEBUG_API("<-XARecordItfImpl_AdaptCb"); |
555 return; |
554 return; |
556 } |
555 } |
557 assert(event); |
|
558 /* check position update events */ |
556 /* check position update events */ |
559 if (event->eventid == XA_ADAPT_POSITION_UPDATE_EVT) |
557 if (event->eventid == XA_ADAPT_POSITION_UPDATE_EVT) |
560 { |
558 { |
561 XAuint32 newpos = 0; |
559 XAuint32 newpos = 0; |
562 assert(event->data); |
|
563 newpos = *((XAuint32*) (event->data)); |
560 newpos = *((XAuint32*) (event->data)); |
564 DEBUG_INFO_A1("new position %u",newpos); |
561 DEBUG_INFO_A1("new position %u",newpos); |
565 /* check if marker passed and callback needed */ |
562 /* check if marker passed and callback needed */ |
566 if ((impl->markerPosition != NO_POSITION) && (impl->eventFlags |
563 if ((impl->markerPosition != NO_POSITION) && (impl->eventFlags |
567 & XA_RECORDEVENT_HEADATMARKER)) |
564 & XA_RECORDEVENT_HEADATMARKER)) |