[Joystick] Do the code better
This commit is contained in:
@@ -59,26 +59,29 @@ LLFloaterJoystick::LLFloaterJoystick(const LLSD& data)
|
|||||||
|
|
||||||
void LLFloaterJoystick::draw()
|
void LLFloaterJoystick::draw()
|
||||||
{
|
{
|
||||||
|
// Singu TODO: Cache these children, or consider not doing this in the draw call
|
||||||
bool joystick_inited = LLViewerJoystick::getInstance()->isJoystickInitialized();
|
bool joystick_inited = LLViewerJoystick::getInstance()->isJoystickInitialized();
|
||||||
childSetEnabled("enable_joystick", joystick_inited);
|
childSetEnabled("enable_joystick", joystick_inited);
|
||||||
childSetEnabled("joystick_type", joystick_inited);
|
auto type(getChild<LLView>("joystick_type"));
|
||||||
|
type->setEnabled(joystick_inited);
|
||||||
std::string desc = LLViewerJoystick::getInstance()->getDescription();
|
std::string desc = LLViewerJoystick::getInstance()->getDescription();
|
||||||
if (desc.empty()) desc = getString("NoDevice");
|
if (desc.empty()) desc = getString("NoDevice");
|
||||||
childSetText("joystick_type", desc);
|
type->setValue(desc);
|
||||||
|
|
||||||
LLViewerJoystick* joystick(LLViewerJoystick::getInstance());
|
LLViewerJoystick* joystick(LLViewerJoystick::getInstance());
|
||||||
for (U32 i = 0; i < 6; i++)
|
for (U32 i = 0; i < 6; ++i)
|
||||||
{
|
{
|
||||||
F32 value = joystick->getJoystickAxis(i);
|
F32 value = joystick->getJoystickAxis(i);
|
||||||
mAxisStats[i]->addValue(value * gFrameIntervalSeconds);
|
mAxisStats[i]->addValue(value * gFrameIntervalSeconds);
|
||||||
|
auto& bar = mAxisStatsBar[i];
|
||||||
if (mAxisStatsBar[i]->mMinBar > value)
|
|
||||||
|
if (bar->mMinBar > value)
|
||||||
{
|
{
|
||||||
mAxisStatsBar[i]->mMinBar = value;
|
bar->mMinBar = value;
|
||||||
}
|
}
|
||||||
if (mAxisStatsBar[i]->mMaxBar < value)
|
if (bar->mMaxBar < value)
|
||||||
{
|
{
|
||||||
mAxisStatsBar[i]->mMaxBar = value;
|
bar->mMaxBar = value;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -47,15 +47,15 @@
|
|||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
// Constants
|
// Constants
|
||||||
|
|
||||||
#define X_I 1
|
constexpr auto X_I = 1;
|
||||||
#define Y_I 2
|
constexpr auto Y_I = 2;
|
||||||
#define Z_I 0
|
constexpr auto Z_I = 0;
|
||||||
#define RX_I 4
|
constexpr auto RX_I = 4;
|
||||||
#define RY_I 5
|
constexpr auto RY_I = 5;
|
||||||
#define RZ_I 3
|
constexpr auto RZ_I = 3;
|
||||||
|
|
||||||
// minimum time after setting away state before coming back
|
// minimum time after setting away state before coming back
|
||||||
const F32 MIN_AFK_TIME = 2.f;
|
constexpr F32 MIN_AFK_TIME = 2.f;
|
||||||
|
|
||||||
F32 LLViewerJoystick::sLastDelta[] = {0,0,0,0,0,0,0};
|
F32 LLViewerJoystick::sLastDelta[] = {0,0,0,0,0,0,0};
|
||||||
F32 LLViewerJoystick::sDelta[] = {0,0,0,0,0,0,0};
|
F32 LLViewerJoystick::sDelta[] = {0,0,0,0,0,0,0};
|
||||||
@@ -113,11 +113,13 @@ enum DS3Keys
|
|||||||
|
|
||||||
S32 get_joystick_type()
|
S32 get_joystick_type()
|
||||||
{
|
{
|
||||||
if (sType == SPACE_NAV) return 0;
|
switch (sType)
|
||||||
if (sType == XBOX) return isOUYA(LLViewerJoystick::getInstance()->getDescription()) ? 1 : 2;
|
{
|
||||||
if (sType == DS3) return 3;
|
case SPACE_NAV: return 0;
|
||||||
|
case XBOX: return isOUYA(LLViewerJoystick::getInstance()->getDescription()) ? 1 : 2;
|
||||||
return -1; // sType == NONE || sType == UNKNOWN
|
case DS3: return 3;
|
||||||
|
default: return -1; // sType == NONE || sType == UNKNOWN
|
||||||
|
}
|
||||||
}
|
}
|
||||||
// </Singu>
|
// </Singu>
|
||||||
|
|
||||||
@@ -126,8 +128,8 @@ S32 get_joystick_type()
|
|||||||
// should be. It has to be equal to 3000 because the SpaceNavigator on Windows
|
// should be. It has to be equal to 3000 because the SpaceNavigator on Windows
|
||||||
// refuses to respond to the DirectInput SetProperty call; it always returns
|
// refuses to respond to the DirectInput SetProperty call; it always returns
|
||||||
// values in the [-3000, 3000] range.
|
// values in the [-3000, 3000] range.
|
||||||
#define MAX_SPACENAVIGATOR_INPUT 3000.0f
|
constexpr auto MAX_SPACENAVIGATOR_INPUT = 3000.0f;
|
||||||
#define MAX_JOYSTICK_INPUT_VALUE MAX_SPACENAVIGATOR_INPUT
|
constexpr auto MAX_JOYSTICK_INPUT_VALUE = MAX_SPACENAVIGATOR_INPUT;
|
||||||
|
|
||||||
// -----------------------------------------------------------------------------
|
// -----------------------------------------------------------------------------
|
||||||
void LLViewerJoystick::updateEnabled(bool autoenable)
|
void LLViewerJoystick::updateEnabled(bool autoenable)
|
||||||
@@ -1390,7 +1392,7 @@ void LLViewerJoystick::setSNDefaults(S32 type)
|
|||||||
const float platformScaleAvXZ = 2.f;
|
const float platformScaleAvXZ = 2.f;
|
||||||
const bool is_3d_cursor = true;
|
const bool is_3d_cursor = true;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//gViewerWindow->alertXml("CacheWillClear");
|
//gViewerWindow->alertXml("CacheWillClear");
|
||||||
const bool ouya = type == 1;
|
const bool ouya = type == 1;
|
||||||
const bool xbox = ouya || type == 2;
|
const bool xbox = ouya || type == 2;
|
||||||
|
|||||||
Reference in New Issue
Block a user