Exemplo n.º 1
0
static Bool check_in_scene(GF_Scene *scene, GF_ObjectManager *odm)
{
    u32 i;
    GF_ObjectManager *ptr, *root;
    if (!scene) return 0;
    root = scene->root_od;
    if (odm == root) return 1;
    scene = root->subscene;

    i=0;
    while ((ptr = (GF_ObjectManager *)gf_list_enum(scene->resources, &i))) {
        if (ptr == odm) return 1;
        if (check_in_scene(ptr->subscene, odm)) return 1;
    }
    return 0;
}
Exemplo n.º 2
0
static Bool check_in_scene(InlineScene *scene, LPODMANAGER odm)
{
	u32 i;
	LPODMANAGER root;
	if (!scene) return 0;
	root = scene->root_od;
	while (1) {
		if (odm == root) return 1;
		if (!root->remote_OD) break;
		root = root->remote_OD;
	}
	scene = root->subscene;

	for (i=0; i<ChainGetCount(scene->ODlist); i++) {
		ODManager *ptr = ChainGetEntry(scene->ODlist, i);
		while (1) {
			if (ptr == odm) return 1;
			if (!ptr->remote_OD) break;
			ptr = ptr->remote_OD;
		}
		if (check_in_scene(ptr->subscene, odm)) return 1;
	}
	return 0;
}
Exemplo n.º 3
0
static Bool gf_term_check_odm(GF_Terminal *term, GF_ObjectManager *odm)
{
    if (!term->root_scene) return 0;
    return check_in_scene(term->root_scene, odm);
}
Exemplo n.º 4
0
static Bool M4T_CheckODM(MPEG4CLIENT term, LPODMANAGER odm)
{
	if (!term->root_scene) return 0;
	return check_in_scene(term->root_scene, odm);
}