ArvInterface * arv_gv_interface_get_instance (void) { arv_g_mutex_lock (&gv_interface_mutex); if (gv_interface == NULL) gv_interface = g_object_new (ARV_TYPE_GV_INTERFACE, NULL); arv_g_mutex_unlock (&gv_interface_mutex); return ARV_INTERFACE (gv_interface); }
void arv_gv_interface_destroy_instance (void) { arv_g_mutex_lock (&gv_interface_mutex); if (gv_interface != NULL) { g_object_unref (gv_interface); gv_interface = NULL; } arv_g_mutex_unlock (&gv_interface_mutex); }
ArvInterface * arv_fake_interface_get_instance (void) { arv_g_mutex_lock (&fake_interface_mutex); if (fake_interface == NULL) fake_interface = g_object_new (ARV_TYPE_FAKE_INTERFACE, NULL); arv_g_mutex_unlock (&fake_interface_mutex); return ARV_INTERFACE (fake_interface); }
const char * arv_get_fake_camera_genicam_xml (size_t *size) { static GMappedFile *genicam_file = NULL; ARV_DEFINE_STATIC_MUTEX (mutex); arv_g_mutex_lock (&mutex); if (genicam_file == NULL ) { char *filename; if (arv_fake_camera_genicam_filename == NULL) filename = g_build_filename (ARAVIS_DATA_DIR, "arv-fake-camera.xml", NULL); else filename = g_strdup (arv_fake_camera_genicam_filename); genicam_file = g_mapped_file_new (filename, FALSE, NULL); if (genicam_file != NULL) { arv_debug_genicam ("[get_fake_camera_genicam_data] %s [size = %d]", filename, g_mapped_file_get_length (genicam_file)); arv_log_genicam (g_mapped_file_get_contents (genicam_file)); } g_free (filename); } arv_g_mutex_unlock (&mutex); g_return_val_if_fail( genicam_file != NULL, NULL); if (size != NULL) *size = g_mapped_file_get_length (genicam_file); return g_mapped_file_get_contents (genicam_file); }