ActorPtr ModelActorFactory::BuildActorTree(Dali::Model& model, const std::string& entityName)
{
    Dali::Entity entity;
    ActorPtr actorPtr;

    Internal::ModelDataPtr modelData(GetImplementation(model).GetModelData());

    if (modelData)
    {
        Dali::Entity root = modelData->GetRootEntity();
        if (entityName.empty())
        {
            entity = root;
        }
        else
        {
            entity = root.Find(entityName);
        }
    }

    if(entity)
    {
        actorPtr = RecurseNew(modelData, entity);
    }
    else
    {
        DALI_LOG_INFO(Debug::Filter::gModel, Debug::General, "Entity %s not found\n", entityName.c_str());
    }

    if(actorPtr)
    {
        Vector4 bounds(entity.GetUpperBounds() - entity.GetLowerBounds());
        Vector3 initialVolume(bounds.x, bounds.y, bounds.z);

        actorPtr->SetInitialVolume(initialVolume);
        actorPtr->SetTransmitGeometryScaling(true);

        BindBonesToMeshActors(actorPtr, actorPtr);
    }
    return actorPtr;
}
Beispiel #2
0
void PrefGeneral::getData(Preferences * pref) {
	requires_restart = false;
	filesettings_method_changed = false;

	if (pref->mplayer_bin != mplayerPath()) {
		requires_restart = true;
		pref->mplayer_bin = mplayerPath();

		qDebug("PrefGeneral::getData: mplayer binary has changed, getting version number");
		// Forces to get info from mplayer to update version number
		InfoReader i( pref->mplayer_bin );
		i.getInfo(); 
		// Update the drivers list at the same time
		//setDrivers( i.voList(), i.aoList() );
	}

	TEST_AND_SET(pref->screenshot_directory, screenshotDir());
	TEST_AND_SET(pref->vo, VO());
    TEST_AND_SET(pref->ao, AO());

	bool dont_remember_ms = !rememberSettings();
    TEST_AND_SET(pref->dont_remember_media_settings, dont_remember_ms);
	bool dont_remember_time = !rememberTimePos();
    TEST_AND_SET(pref->dont_remember_time_pos, dont_remember_time);
	if (pref->file_settings_method != fileSettingsMethod()) {
		pref->file_settings_method = fileSettingsMethod();
		filesettings_method_changed = true;
	}

	pref->audio_lang = audioLang();
    pref->subtitle_lang = subtitleLang();

	pref->initial_audio_track = audioTrack();
	pref->initial_subtitle_track = subtitleTrack();

	pref->close_on_finish = closeOnFinish();
	pref->pause_when_hidden = pauseWhenHidden();

	TEST_AND_SET(pref->use_soft_video_eq, eq2());
	TEST_AND_SET(pref->use_soft_vol, softVol());
	TEST_AND_SET(pref->use_audio_equalizer, useAudioEqualizer());
	TEST_AND_SET(pref->use_hwac3, Ac3DTSPassthrough());
	pref->initial_volnorm = initialVolNorm();
	TEST_AND_SET(pref->softvol_max, amplification());
	pref->initial_postprocessing = initialPostprocessing();
	pref->initial_deinterlace = initialDeinterlace();
	pref->initial_panscan_factor = initialZoom();
	TEST_AND_SET(pref->use_direct_rendering, directRendering());
	TEST_AND_SET(pref->use_double_buffer, doubleBuffer());
	TEST_AND_SET(pref->use_slices, useSlices());
	pref->start_in_fullscreen = startInFullscreen();
	TEST_AND_SET(pref->disable_screensaver, disableScreensaver());
	if (pref->add_blackborders_on_fullscreen != blackbordersOnFullscreen()) {
		pref->add_blackborders_on_fullscreen = blackbordersOnFullscreen();
		if (pref->fullscreen) requires_restart = true;
	}
	TEST_AND_SET(pref->autoq, autoq());

	pref->initial_volume = initialVolume();
	pref->dont_change_volume = dontChangeVolume();
	pref->use_volume_option = useVolume();
	pref->initial_audio_channels = audioChannels();
	TEST_AND_SET(pref->use_scaletempo, scaleTempoFilter());
}