llviewercontrol.cpp

Go to the documentation of this file.
00001 
00033 #include "llviewerprecompiledheaders.h"
00034 
00035 #include "llviewercontrol.h"
00036 
00037 #include "indra_constants.h"
00038 
00039 // For Listeners
00040 #include "audioengine.h"
00041 #include "llagent.h"
00042 #include "llconsole.h"
00043 #include "lldrawpoolterrain.h"
00044 #include "llflexibleobject.h"
00045 #include "llfeaturemanager.h"
00046 #include "llglslshader.h"
00047 #include "llnetmap.h"
00048 #include "llpanelgeneral.h"
00049 #include "llpanelinput.h"
00050 #include "llsky.h"
00051 #include "llvieweraudio.h"
00052 #include "llviewerimagelist.h"
00053 #include "llviewerthrottle.h"
00054 #include "llviewerwindow.h"
00055 #include "llvoavatar.h"
00056 #include "llvoiceclient.h"
00057 #include "llvosky.h"
00058 #include "llvotree.h"
00059 #include "llvovolume.h"
00060 #include "llworld.h"
00061 #include "pipeline.h"
00062 #include "llviewerjoystick.h"
00063 #include "llviewerparcelmgr.h"
00064 #include "llparcel.h"
00065 #include "llnotify.h"
00066 #include "llkeyboard.h"
00067 #include "llerrorcontrol.h"
00068 #include "llversionviewer.h"
00069 #include "llappviewer.h"
00070 #include "llvosurfacepatch.h"
00071 #include "llvowlsky.h"
00072 #include "llglimmediate.h"
00073 
00074 #ifdef TOGGLE_HACKED_GODLIKE_VIEWER
00075 BOOL                            gHackGodmode = FALSE;
00076 #endif
00077 
00078 
00079 std::map<LLString, LLControlGroup*> gSettings;
00080 LLControlGroup gSavedSettings;  // saved at end of session
00081 LLControlGroup gSavedPerAccountSettings; // saved at end of session
00082 LLControlGroup gColors;                 // read-only
00083 LLControlGroup gCrashSettings;  // saved at end of session
00084 
00085 LLString gLastRunVersion;
00086 LLString gCurrentVersion;
00087 
00088 extern BOOL gResizeScreenTexture;
00089 extern BOOL gDebugGL;
00090 
00092 // Listeners
00093 
00094 static bool handleRenderAvatarMouselookChanged(const LLSD& newvalue)
00095 {
00096         LLVOAvatar::sVisibleInFirstPerson = newvalue.asBoolean();
00097         return true;
00098 }
00099 
00100 static bool handleRenderFarClipChanged(const LLSD& newvalue)
00101 {
00102         F32 draw_distance = (F32) newvalue.asReal();
00103         gAgent.mDrawDistance = draw_distance;
00104         LLWorld::getInstance()->setLandFarClip(draw_distance);
00105         return true;
00106 }
00107 
00108 static bool handleTerrainDetailChanged(const LLSD& newvalue)
00109 {
00110         LLDrawPoolTerrain::sDetailMode = newvalue.asInteger();
00111         return true;
00112 }
00113 
00114 
00115 static bool handleSetShaderChanged(const LLSD& newvalue)
00116 {
00117         LLShaderMgr::setShaders();
00118         return true;
00119 }
00120 
00121 static bool handleReleaseGLBufferChanged(const LLSD& newvalue)
00122 {
00123         if (gPipeline.isInit())
00124         {
00125                 gPipeline.releaseGLBuffers();
00126                 gPipeline.createGLBuffers();
00127         }
00128         return true;
00129 }
00130 
00131 static bool handleVolumeLODChanged(const LLSD& newvalue)
00132 {
00133         LLVOVolume::sLODFactor = (F32) newvalue.asReal();
00134         LLVOVolume::sDistanceFactor = 1.f-LLVOVolume::sLODFactor * 0.1f;
00135         return true;
00136 }
00137 
00138 static bool handleAvatarLODChanged(const LLSD& newvalue)
00139 {
00140         LLVOAvatar::sLODFactor = (F32) newvalue.asReal();
00141         return true;
00142 }
00143 
00144 static bool handleTerrainLODChanged(const LLSD& newvalue)
00145 {
00146                 LLVOSurfacePatch::sLODFactor = (F32)newvalue.asReal();
00147                 //sqaure lod factor to get exponential range of [0,4] and keep
00148                 //a value of 1 in the middle of the detail slider for consistency
00149                 //with other detail sliders (see panel_preferences_graphics1.xml)
00150                 LLVOSurfacePatch::sLODFactor *= LLVOSurfacePatch::sLODFactor;
00151                 return true;
00152 }
00153 
00154 static bool handleTreeLODChanged(const LLSD& newvalue)
00155 {
00156         LLVOTree::sTreeFactor = (F32) newvalue.asReal();
00157         return true;
00158 }
00159 
00160 static bool handleFlexLODChanged(const LLSD& newvalue)
00161 {
00162         LLVolumeImplFlexible::sUpdateFactor = (F32) newvalue.asReal();
00163         return true;
00164 }
00165 
00166 static bool handleGammaChanged(const LLSD& newvalue)
00167 {
00168         F32 gamma = (F32) newvalue.asReal();
00169         if (gamma == 0.0f)
00170         {
00171                 gamma = 1.0f; // restore normal gamma
00172         }
00173         if (gViewerWindow && gViewerWindow->getWindow() && gamma != gViewerWindow->getWindow()->getGamma())
00174         {
00175                 // Only save it if it's changed
00176                 if (!gViewerWindow->getWindow()->setGamma(gamma))
00177                 {
00178                         llwarns << "setGamma failed!" << llendl;
00179                 }
00180         }
00181 
00182         return true;
00183 }
00184 
00185 const F32 MAX_USER_FOG_RATIO = 10.f;
00186 const F32 MIN_USER_FOG_RATIO = 0.5f;
00187 
00188 static bool handleFogRatioChanged(const LLSD& newvalue)
00189 {
00190         F32 fog_ratio = llmax(MIN_USER_FOG_RATIO, llmin((F32) newvalue.asReal(), MAX_USER_FOG_RATIO));
00191         gSky.setFogRatio(fog_ratio);
00192         return true;
00193 }
00194 
00195 static bool handleMaxPartCountChanged(const LLSD& newvalue)
00196 {
00197         LLViewerPartSim::setMaxPartCount(newvalue.asInteger());
00198         return true;
00199 }
00200 
00201 const S32 MAX_USER_COMPOSITE_LIMIT = 100;
00202 const S32 MIN_USER_COMPOSITE_LIMIT = 0;
00203 
00204 static bool handleCompositeLimitChanged(const LLSD& newvalue)
00205 {
00206         S32 composite_limit = llmax(MIN_USER_COMPOSITE_LIMIT,  llmin((S32)newvalue.asInteger(), MAX_USER_COMPOSITE_LIMIT));
00207         LLVOAvatar::sMaxOtherAvatarsToComposite = composite_limit;
00208         return true;
00209 }
00210 
00211 static bool handleVideoMemoryChanged(const LLSD& newvalue)
00212 {
00213         gImageList.updateMaxResidentTexMem(newvalue.asInteger());
00214         return true;
00215 }
00216 
00217 static bool handleBandwidthChanged(const LLSD& newvalue)
00218 {
00219         gViewerThrottle.setMaxBandwidth((F32) newvalue.asReal());
00220         return true;
00221 }
00222 
00223 static bool handleChatFontSizeChanged(const LLSD& newvalue)
00224 {
00225         if(gConsole)
00226         {
00227                 gConsole->setFontSize(newvalue.asInteger());
00228         }
00229         return true;
00230 }
00231 
00232 static bool handleChatPersistTimeChanged(const LLSD& newvalue)
00233 {
00234         if(gConsole)
00235         {
00236                 gConsole->setLinePersistTime((F32) newvalue.asReal());
00237         }
00238         return true;
00239 }
00240 
00241 static bool handleConsoleMaxLinesChanged(const LLSD& newvalue)
00242 {
00243         if(gConsole)
00244         {
00245                 gConsole->setMaxLines(newvalue.asInteger());
00246         }
00247         return true;
00248 }
00249 
00250 static void handleAudioVolumeChanged(const LLSD& newvalue)
00251 {
00252         audio_update_volume(true);
00253 }
00254 
00255 static bool handleJoystickChanged(const LLSD& newvalue)
00256 {
00257         LLViewerJoystick::getInstance()->setCameraNeedsUpdate(TRUE);
00258         return true;
00259 }
00260 
00261 static bool handleAudioStreamMusicChanged(const LLSD& newvalue)
00262 {
00263         if (gAudiop)
00264         {
00265                 if ( newvalue.asBoolean() )
00266                 {
00267                         if (LLViewerParcelMgr::getInstance()->getAgentParcel()
00268                                 && !LLViewerParcelMgr::getInstance()->getAgentParcel()->getMusicURL().empty())
00269                         {
00270                                 // if stream is already playing, don't call this
00271                                 // otherwise music will briefly stop
00272                                 if ( !gAudiop->isInternetStreamPlaying() )
00273                                 {
00274                                         gAudiop->startInternetStream(LLViewerParcelMgr::getInstance()->getAgentParcel()->getMusicURL().c_str());
00275                                 }
00276                         }
00277                 }
00278                 else
00279                 {
00280                         gAudiop->stopInternetStream();
00281                 }
00282         }
00283         return true;
00284 }
00285 
00286 static bool handleUseOcclusionChanged(const LLSD& newvalue)
00287 {
00288         LLPipeline::sUseOcclusion = (newvalue.asBoolean() && gGLManager.mHasOcclusionQuery 
00289                 && LLFeatureManager::getInstance()->isFeatureAvailable("UseOcclusion") && !gUseWireframe) ? 2 : 0;
00290         return true;
00291 }
00292 
00293 static bool handleNumpadControlChanged(const LLSD& newvalue)
00294 {
00295         if (gKeyboard)
00296         {
00297                 gKeyboard->setNumpadDistinct(static_cast<LLKeyboard::e_numpad_distinct>(newvalue.asInteger()));
00298         }
00299         return true;
00300 }
00301 
00302 static bool handleRenderUseVBOChanged(const LLSD& newvalue)
00303 {
00304         if (gPipeline.isInit())
00305         {
00306                 gPipeline.setUseVBO(newvalue.asBoolean());
00307         }
00308         return true;
00309 }
00310 
00311 static bool handleWLSkyDetailChanged(const LLSD&)
00312 {
00313         if (gSky.mVOWLSkyp.notNull())
00314         {
00315                 gSky.mVOWLSkyp->updateGeometry(gSky.mVOWLSkyp->mDrawable);
00316         }
00317         return true;
00318 }
00319 
00320 static bool handleRenderLightingDetailChanged(const LLSD& newvalue)
00321 {
00322         if (gPipeline.isInit())
00323         {
00324                 gPipeline.setLightingDetail(newvalue.asInteger());
00325         }
00326         return true;
00327 }
00328 
00329 static bool handleResetVertexBuffersChanged(const LLSD&)
00330 {
00331         if (gPipeline.isInit())
00332         {
00333                 gPipeline.resetVertexBuffers();
00334         }
00335         return true;
00336 }
00337 
00338 static bool handleRenderDynamicLODChanged(const LLSD& newvalue)
00339 {
00340         LLPipeline::sDynamicLOD = newvalue.asBoolean();
00341         return true;
00342 }
00343 
00344 static bool handleRenderUseFBOChanged(const LLSD& newvalue)
00345 {
00346         LLRenderTarget::sUseFBO = newvalue.asBoolean();
00347         if (gPipeline.isInit())
00348         {
00349                 gPipeline.releaseGLBuffers();
00350                 gPipeline.createGLBuffers();
00351         }
00352         return true;
00353 }
00354 
00355 static bool handleRenderUseImpostorsChanged(const LLSD& newvalue)
00356 {
00357         LLVOAvatar::sUseImpostors = FALSE; //newvalue.asBoolean();
00358         return true;
00359 }
00360 
00361 static bool handleRenderDebugGLChanged(const LLSD& newvalue)
00362 {
00363         gDebugGL = newvalue.asBoolean();
00364         return true;
00365 }
00366 
00367 static bool handleRenderDebugPipelineChanged(const LLSD& newvalue)
00368 {
00369         gDebugPipeline = newvalue.asBoolean();
00370         return true;
00371 }
00372 
00373 static bool handleRenderResolutionDivisorChanged(const LLSD&)
00374 {
00375         gResizeScreenTexture = TRUE;
00376         return true;
00377 }
00378 
00379 static bool handleDebugViewsChanged(const LLSD& newvalue)
00380 {
00381         LLView::sDebugRects = newvalue.asBoolean();
00382         return true;
00383 }
00384 
00385 static bool handleLogFileChanged(const LLSD& newvalue)
00386 {
00387         std::string log_filename = newvalue.asString();
00388         LLFile::remove(log_filename.c_str());
00389         LLError::logToFile(log_filename);
00390         return true;
00391 }
00392 
00393 bool handleHideGroupTitleChanged(const LLSD& newvalue)
00394 {
00395         gAgent.setHideGroupTitle(newvalue);
00396         return true;
00397 }
00398 
00399 bool handleEffectColorChanged(const LLSD& newvalue)
00400 {
00401         gAgent.setEffectColor(LLColor4(newvalue));
00402         return true;
00403 }
00404 
00405 bool handleRotateNetMapChanged(const LLSD& newvalue)
00406 {
00407         LLNetMap::setRotateMap(newvalue.asBoolean());
00408         return true;
00409 }
00410 
00411 bool handleVectorizeChanged(const LLSD& newvalue)
00412 {
00413         LLViewerJointMesh::updateVectorize();
00414         return true;
00415 }
00416 
00417 bool handleVoiceClientPrefsChanged(const LLSD& newvalue)
00418 {
00419         if(gVoiceClient)
00420         {
00421                 // Note: Ignore the specific event value, look up the ones we want
00422 
00423                 gVoiceClient->setVoiceEnabled(gSavedSettings.getBOOL("EnableVoiceChat"));
00424                 gVoiceClient->setUsePTT(gSavedSettings.getBOOL("PTTCurrentlyEnabled"));
00425                 std::string keyString = gSavedSettings.getString("PushToTalkButton");
00426                 gVoiceClient->setPTTKey(keyString);
00427                 gVoiceClient->setPTTIsToggle(gSavedSettings.getBOOL("PushToTalkToggle"));
00428                 gVoiceClient->setEarLocation(gSavedSettings.getS32("VoiceEarLocation"));
00429                 std::string serverName = gSavedSettings.getString("VivoxDebugServerName");
00430                 gVoiceClient->setVivoxDebugServerName(serverName);
00431 
00432                 std::string inputDevice = gSavedSettings.getString("VoiceInputAudioDevice");
00433                 gVoiceClient->setCaptureDevice(inputDevice);
00434                 std::string outputDevice = gSavedSettings.getString("VoiceOutputAudioDevice");
00435                 gVoiceClient->setRenderDevice(outputDevice);
00436                 gVoiceClient->setLipSyncEnabled(gSavedSettings.getU32("LipSyncEnabled"));
00437         }
00438         return true;
00439 }
00440 
00442 
00443 void settings_setup_listeners()
00444 {
00445         gSavedSettings.getControl("FirstPersonAvatarVisible")->getSignal()->connect(boost::bind(&handleRenderAvatarMouselookChanged, _1));
00446         gSavedSettings.getControl("RenderFarClip")->getSignal()->connect(boost::bind(&handleRenderFarClipChanged, _1));
00447         gSavedSettings.getControl("RenderTerrainDetail")->getSignal()->connect(boost::bind(&handleTerrainDetailChanged, _1));
00448         gSavedSettings.getControl("RenderAvatarVP")->getSignal()->connect(boost::bind(&handleSetShaderChanged, _1));
00449         gSavedSettings.getControl("VertexShaderEnable")->getSignal()->connect(boost::bind(&handleSetShaderChanged, _1));
00450         gSavedSettings.getControl("RenderDynamicReflections")->getSignal()->connect(boost::bind(&handleSetShaderChanged, _1));
00451         gSavedSettings.getControl("RenderGlow")->getSignal()->connect(boost::bind(&handleReleaseGLBufferChanged, _1));
00452         gSavedSettings.getControl("RenderGlow")->getSignal()->connect(boost::bind(&handleSetShaderChanged, _1));
00453         gSavedSettings.getControl("EnableRippleWater")->getSignal()->connect(boost::bind(&handleSetShaderChanged, _1));
00454         gSavedSettings.getControl("RenderGlowResolutionPow")->getSignal()->connect(boost::bind(&handleReleaseGLBufferChanged, _1));
00455         gSavedSettings.getControl("RenderAvatarCloth")->getSignal()->connect(boost::bind(&handleSetShaderChanged, _1));
00456         gSavedSettings.getControl("WindLightUseAtmosShaders")->getSignal()->connect(boost::bind(&handleSetShaderChanged, _1));
00457         gSavedSettings.getControl("RenderGammaFull")->getSignal()->connect(boost::bind(&handleSetShaderChanged, _1));
00458         gSavedSettings.getControl("RenderVolumeLODFactor")->getSignal()->connect(boost::bind(&handleVolumeLODChanged, _1));
00459         gSavedSettings.getControl("RenderAvatarLODFactor")->getSignal()->connect(boost::bind(&handleAvatarLODChanged, _1));
00460         gSavedSettings.getControl("RenderTerrainLODFactor")->getSignal()->connect(boost::bind(&handleTerrainLODChanged, _1));
00461         gSavedSettings.getControl("RenderTreeLODFactor")->getSignal()->connect(boost::bind(&handleTreeLODChanged, _1));
00462         gSavedSettings.getControl("RenderFlexTimeFactor")->getSignal()->connect(boost::bind(&handleFlexLODChanged, _1));
00463         gSavedSettings.getControl("ThrottleBandwidthKBPS")->getSignal()->connect(boost::bind(&handleBandwidthChanged, _1));
00464         gSavedSettings.getControl("RenderGamma")->getSignal()->connect(boost::bind(&handleGammaChanged, _1));
00465         gSavedSettings.getControl("RenderFogRatio")->getSignal()->connect(boost::bind(&handleFogRatioChanged, _1));
00466         gSavedSettings.getControl("RenderMaxPartCount")->getSignal()->connect(boost::bind(&handleMaxPartCountChanged, _1));
00467         gSavedSettings.getControl("RenderDynamicLOD")->getSignal()->connect(boost::bind(&handleRenderDynamicLODChanged, _1));
00468         gSavedSettings.getControl("RenderDebugTextureBind")->getSignal()->connect(boost::bind(&handleResetVertexBuffersChanged, _1));
00469         gSavedSettings.getControl("RenderFastAlpha")->getSignal()->connect(boost::bind(&handleResetVertexBuffersChanged, _1));
00470         gSavedSettings.getControl("RenderObjectBump")->getSignal()->connect(boost::bind(&handleResetVertexBuffersChanged, _1));
00471         gSavedSettings.getControl("RenderMaxVBOSize")->getSignal()->connect(boost::bind(&handleResetVertexBuffersChanged, _1));
00472         gSavedSettings.getControl("RenderUseFBO")->getSignal()->connect(boost::bind(&handleRenderUseFBOChanged, _1));
00473         gSavedSettings.getControl("RenderUseImpostors")->getSignal()->connect(boost::bind(&handleRenderUseImpostorsChanged, _1));
00474         gSavedSettings.getControl("RenderDebugGL")->getSignal()->connect(boost::bind(&handleRenderDebugGLChanged, _1));
00475         gSavedSettings.getControl("RenderDebugPipeline")->getSignal()->connect(boost::bind(&handleRenderDebugPipelineChanged, _1));
00476         gSavedSettings.getControl("RenderResolutionDivisor")->getSignal()->connect(boost::bind(&handleRenderResolutionDivisorChanged, _1));
00477         gSavedSettings.getControl("RenderDeferred")->getSignal()->connect(boost::bind(&handleSetShaderChanged, _1));
00478         gSavedSettings.getControl("AvatarCompositeLimit")->getSignal()->connect(boost::bind(&handleCompositeLimitChanged, _1));
00479         gSavedSettings.getControl("TextureMemory")->getSignal()->connect(boost::bind(&handleVideoMemoryChanged, _1));
00480         gSavedSettings.getControl("ChatFontSize")->getSignal()->connect(boost::bind(&handleChatFontSizeChanged, _1));
00481         gSavedSettings.getControl("ChatPersistTime")->getSignal()->connect(boost::bind(&handleChatPersistTimeChanged, _1));
00482         gSavedSettings.getControl("ConsoleMaxLines")->getSignal()->connect(boost::bind(&handleConsoleMaxLinesChanged, _1));
00483         gSavedSettings.getControl("UseOcclusion")->getSignal()->connect(boost::bind(&handleUseOcclusionChanged, _1));
00484         gSavedSettings.getControl("AudioLevelMaster")->getSignal()->connect(boost::bind(&handleAudioVolumeChanged, _1));
00485         gSavedSettings.getControl("AudioLevelSFX")->getSignal()->connect(boost::bind(&handleAudioVolumeChanged, _1));
00486         gSavedSettings.getControl("AudioLevelUI")->getSignal()->connect(boost::bind(&handleAudioVolumeChanged, _1));
00487         gSavedSettings.getControl("AudioLevelAmbient")->getSignal()->connect(boost::bind(&handleAudioVolumeChanged, _1));
00488         gSavedSettings.getControl("AudioLevelMusic")->getSignal()->connect(boost::bind(&handleAudioVolumeChanged, _1));
00489         gSavedSettings.getControl("AudioLevelMedia")->getSignal()->connect(boost::bind(&handleAudioVolumeChanged, _1));
00490         gSavedSettings.getControl("AudioLevelVoice")->getSignal()->connect(boost::bind(&handleAudioVolumeChanged, _1));
00491         gSavedSettings.getControl("AudioLevelDistance")->getSignal()->connect(boost::bind(&handleAudioVolumeChanged, _1));
00492         gSavedSettings.getControl("AudioLevelDoppler")->getSignal()->connect(boost::bind(&handleAudioVolumeChanged, _1));
00493         gSavedSettings.getControl("AudioLevelRolloff")->getSignal()->connect(boost::bind(&handleAudioVolumeChanged, _1));
00494         gSavedSettings.getControl("AudioStreamingMusic")->getSignal()->connect(boost::bind(&handleAudioStreamMusicChanged, _1));
00495         gSavedSettings.getControl("MuteAudio")->getSignal()->connect(boost::bind(&handleAudioVolumeChanged, _1));
00496         gSavedSettings.getControl("MuteMusic")->getSignal()->connect(boost::bind(&handleAudioVolumeChanged, _1));
00497         gSavedSettings.getControl("MuteMedia")->getSignal()->connect(boost::bind(&handleAudioVolumeChanged, _1));
00498         gSavedSettings.getControl("MuteVoice")->getSignal()->connect(boost::bind(&handleAudioVolumeChanged, _1));
00499         gSavedSettings.getControl("MuteAmbient")->getSignal()->connect(boost::bind(&handleAudioVolumeChanged, _1));
00500         gSavedSettings.getControl("MuteUI")->getSignal()->connect(boost::bind(&handleAudioVolumeChanged, _1));
00501         gSavedSettings.getControl("RenderVBOEnable")->getSignal()->connect(boost::bind(&handleRenderUseVBOChanged, _1));
00502         gSavedSettings.getControl("WLSkyDetail")->getSignal()->connect(boost::bind(&handleWLSkyDetailChanged, _1));
00503         gSavedSettings.getControl("RenderLightingDetail")->getSignal()->connect(boost::bind(&handleRenderLightingDetailChanged, _1));
00504         gSavedSettings.getControl("NumpadControl")->getSignal()->connect(boost::bind(&handleNumpadControlChanged, _1));
00505         gSavedSettings.getControl("JoystickAxis0")->getSignal()->connect(boost::bind(&handleJoystickChanged, _1));
00506         gSavedSettings.getControl("JoystickAxis1")->getSignal()->connect(boost::bind(&handleJoystickChanged, _1));
00507         gSavedSettings.getControl("JoystickAxis2")->getSignal()->connect(boost::bind(&handleJoystickChanged, _1));
00508         gSavedSettings.getControl("JoystickAxis3")->getSignal()->connect(boost::bind(&handleJoystickChanged, _1));
00509         gSavedSettings.getControl("JoystickAxis4")->getSignal()->connect(boost::bind(&handleJoystickChanged, _1));
00510         gSavedSettings.getControl("JoystickAxis5")->getSignal()->connect(boost::bind(&handleJoystickChanged, _1));
00511         gSavedSettings.getControl("JoystickAxis6")->getSignal()->connect(boost::bind(&handleJoystickChanged, _1));
00512         gSavedSettings.getControl("FlycamAxisScale0")->getSignal()->connect(boost::bind(&handleJoystickChanged, _1));
00513         gSavedSettings.getControl("FlycamAxisScale1")->getSignal()->connect(boost::bind(&handleJoystickChanged, _1));
00514         gSavedSettings.getControl("FlycamAxisScale2")->getSignal()->connect(boost::bind(&handleJoystickChanged, _1));
00515         gSavedSettings.getControl("FlycamAxisScale3")->getSignal()->connect(boost::bind(&handleJoystickChanged, _1));
00516         gSavedSettings.getControl("FlycamAxisScale4")->getSignal()->connect(boost::bind(&handleJoystickChanged, _1));
00517         gSavedSettings.getControl("FlycamAxisScale5")->getSignal()->connect(boost::bind(&handleJoystickChanged, _1));
00518         gSavedSettings.getControl("FlycamAxisScale6")->getSignal()->connect(boost::bind(&handleJoystickChanged, _1));
00519         gSavedSettings.getControl("FlycamAxisDeadZone0")->getSignal()->connect(boost::bind(&handleJoystickChanged, _1));
00520         gSavedSettings.getControl("FlycamAxisDeadZone1")->getSignal()->connect(boost::bind(&handleJoystickChanged, _1));
00521         gSavedSettings.getControl("FlycamAxisDeadZone2")->getSignal()->connect(boost::bind(&handleJoystickChanged, _1));
00522         gSavedSettings.getControl("FlycamAxisDeadZone3")->getSignal()->connect(boost::bind(&handleJoystickChanged, _1));
00523         gSavedSettings.getControl("FlycamAxisDeadZone4")->getSignal()->connect(boost::bind(&handleJoystickChanged, _1));
00524         gSavedSettings.getControl("FlycamAxisDeadZone5")->getSignal()->connect(boost::bind(&handleJoystickChanged, _1));
00525         gSavedSettings.getControl("FlycamAxisDeadZone6")->getSignal()->connect(boost::bind(&handleJoystickChanged, _1));
00526         gSavedSettings.getControl("AvatarAxisScale0")->getSignal()->connect(boost::bind(&handleJoystickChanged, _1));
00527         gSavedSettings.getControl("AvatarAxisScale1")->getSignal()->connect(boost::bind(&handleJoystickChanged, _1));
00528         gSavedSettings.getControl("AvatarAxisScale2")->getSignal()->connect(boost::bind(&handleJoystickChanged, _1));
00529         gSavedSettings.getControl("AvatarAxisScale3")->getSignal()->connect(boost::bind(&handleJoystickChanged, _1));
00530         gSavedSettings.getControl("AvatarAxisScale4")->getSignal()->connect(boost::bind(&handleJoystickChanged, _1));
00531         gSavedSettings.getControl("AvatarAxisScale5")->getSignal()->connect(boost::bind(&handleJoystickChanged, _1));
00532         gSavedSettings.getControl("AvatarAxisDeadZone0")->getSignal()->connect(boost::bind(&handleJoystickChanged, _1));
00533         gSavedSettings.getControl("AvatarAxisDeadZone1")->getSignal()->connect(boost::bind(&handleJoystickChanged, _1));
00534         gSavedSettings.getControl("AvatarAxisDeadZone2")->getSignal()->connect(boost::bind(&handleJoystickChanged, _1));
00535         gSavedSettings.getControl("AvatarAxisDeadZone3")->getSignal()->connect(boost::bind(&handleJoystickChanged, _1));
00536         gSavedSettings.getControl("AvatarAxisDeadZone4")->getSignal()->connect(boost::bind(&handleJoystickChanged, _1));
00537         gSavedSettings.getControl("AvatarAxisDeadZone5")->getSignal()->connect(boost::bind(&handleJoystickChanged, _1));
00538         gSavedSettings.getControl("BuildAxisScale0")->getSignal()->connect(boost::bind(&handleJoystickChanged, _1));
00539         gSavedSettings.getControl("BuildAxisScale1")->getSignal()->connect(boost::bind(&handleJoystickChanged, _1));
00540         gSavedSettings.getControl("BuildAxisScale2")->getSignal()->connect(boost::bind(&handleJoystickChanged, _1));
00541         gSavedSettings.getControl("BuildAxisScale3")->getSignal()->connect(boost::bind(&handleJoystickChanged, _1));
00542         gSavedSettings.getControl("BuildAxisScale4")->getSignal()->connect(boost::bind(&handleJoystickChanged, _1));
00543         gSavedSettings.getControl("BuildAxisScale5")->getSignal()->connect(boost::bind(&handleJoystickChanged, _1));
00544         gSavedSettings.getControl("BuildAxisDeadZone0")->getSignal()->connect(boost::bind(&handleJoystickChanged, _1));
00545         gSavedSettings.getControl("BuildAxisDeadZone1")->getSignal()->connect(boost::bind(&handleJoystickChanged, _1));
00546         gSavedSettings.getControl("BuildAxisDeadZone2")->getSignal()->connect(boost::bind(&handleJoystickChanged, _1));
00547         gSavedSettings.getControl("BuildAxisDeadZone3")->getSignal()->connect(boost::bind(&handleJoystickChanged, _1));
00548         gSavedSettings.getControl("BuildAxisDeadZone4")->getSignal()->connect(boost::bind(&handleJoystickChanged, _1));
00549         gSavedSettings.getControl("BuildAxisDeadZone5")->getSignal()->connect(boost::bind(&handleJoystickChanged, _1));
00550     gSavedSettings.getControl("DebugViews")->getSignal()->connect(boost::bind(&handleDebugViewsChanged, _1));
00551     gSavedSettings.getControl("UserLogFile")->getSignal()->connect(boost::bind(&handleLogFileChanged, _1));
00552         gSavedSettings.getControl("RenderHideGroupTitle")->getSignal()->connect(boost::bind(handleHideGroupTitleChanged, _1));
00553         gSavedSettings.getControl("EffectColor")->getSignal()->connect(boost::bind(handleEffectColorChanged, _1));
00554         gSavedSettings.getControl("MiniMapRotate")->getSignal()->connect(boost::bind(handleRotateNetMapChanged, _1));
00555         gSavedSettings.getControl("VectorizePerfTest")->getSignal()->connect(boost::bind(&handleVectorizeChanged, _1));
00556         gSavedSettings.getControl("VectorizeEnable")->getSignal()->connect(boost::bind(&handleVectorizeChanged, _1));
00557         gSavedSettings.getControl("VectorizeProcessor")->getSignal()->connect(boost::bind(&handleVectorizeChanged, _1));
00558         gSavedSettings.getControl("VectorizeSkin")->getSignal()->connect(boost::bind(&handleVectorizeChanged, _1));
00559         gSavedSettings.getControl("EnableVoiceChat")->getSignal()->connect(boost::bind(&handleVoiceClientPrefsChanged, _1));
00560         gSavedSettings.getControl("PTTCurrentlyEnabled")->getSignal()->connect(boost::bind(&handleVoiceClientPrefsChanged, _1));
00561         gSavedSettings.getControl("PushToTalkButton")->getSignal()->connect(boost::bind(&handleVoiceClientPrefsChanged, _1));
00562         gSavedSettings.getControl("PushToTalkToggle")->getSignal()->connect(boost::bind(&handleVoiceClientPrefsChanged, _1));
00563         gSavedSettings.getControl("VoiceEarLocation")->getSignal()->connect(boost::bind(&handleVoiceClientPrefsChanged, _1));
00564         gSavedSettings.getControl("VivoxDebugServerName")->getSignal()->connect(boost::bind(&handleVoiceClientPrefsChanged, _1));
00565         gSavedSettings.getControl("VoiceInputAudioDevice")->getSignal()->connect(boost::bind(&handleVoiceClientPrefsChanged, _1));
00566         gSavedSettings.getControl("VoiceOutputAudioDevice")->getSignal()->connect(boost::bind(&handleVoiceClientPrefsChanged, _1));
00567         gSavedSettings.getControl("LipSyncEnabled")->getSignal()->connect(boost::bind(&handleVoiceClientPrefsChanged, _1));     
00568 }
00569 

Generated on Fri May 16 08:34:09 2008 for SecondLife by  doxygen 1.5.5