const char *ConfCtrlFile = NULL;
mmf_camcorder_t *hcamcorder = NULL;
type_element *EvasSurfaceElement = NULL;
+#ifdef _MMCAMCORDER_MURPHY_SUPPORT
+ gint64 end_time = 0;
+#endif /* _MMCAMCORDER_MURPHY_SUPPORT */
_mmcam_dbg_log("Entered");
_mmcam_dbg_warn("failed get software version, sys_info_ret 0x%x", sys_info_ret);
}
+#ifdef _MMCAMCORDER_MURPHY_SUPPORT
+ _MMCAMCORDER_LOCK_RESOURCE(hcamcorder);
+
+ if (hcamcorder->resource_manager.is_connected == FALSE) {
+ /* wait for resource manager connected */
+ _mmcam_dbg_log("resource manager is not connected. wait for signal...");
+
+ end_time = g_get_monotonic_time() + (__MMCAMCORDER_RESOURCE_WAIT_TIME * G_TIME_SPAN_SECOND);
+
+ if (_MMCAMCORDER_RESOURCE_WAIT_UNTIL(hcamcorder, end_time)) {
+ _mmcam_dbg_warn("signal received");
+ } else {
+ _MMCAMCORDER_UNLOCK_RESOURCE(hcamcorder);
+ _mmcam_dbg_err("timeout");
+ ret = MM_ERROR_RESOURCE_INTERNAL;
+ goto _ERR_DEFAULT_VALUE_INIT;
+ }
+ }
+
+ _MMCAMCORDER_UNLOCK_RESOURCE(hcamcorder);
+#endif /* _MMCAMCORDER_MURPHY_SUPPORT */
+
/* Set initial state */
_mmcamcorder_set_state((MMHandleType)hcamcorder, MM_CAMCORDER_STATE_NULL);
mmf_return_if_fail((MMHandleType)camcorder);
+ _mmcam_dbg_log("enter");
+
+ _MMCAMCORDER_LOCK_RESOURCE(camcorder);
+
switch (context->state) {
case MRP_RES_CONNECTED:
_mmcam_dbg_log(" - connected to Murphy");
resource_names = mrp_res_list_resource_names(rset);
if (!resource_names) {
_mmcam_dbg_err(" - no resources available");
+ _MMCAMCORDER_UNLOCK_RESOURCE(camcorder);
return;
}
for (i = 0; i < resource_names->num_strings; i++) {
mrp_res_free_string_array(resource_names);
}
camcorder->resource_manager.is_connected = TRUE;
+ _MMCAMCORDER_RESOURCE_SIGNAL(camcorder);
break;
case MRP_RES_DISCONNECTED:
_mmcam_dbg_log(" - disconnected from Murphy");
break;
}
+ _MMCAMCORDER_UNLOCK_RESOURCE(camcorder);
+
+ _mmcam_dbg_log("leave");
+
return;
}