svn merge -r 59608:60615 svn+ssh://svn.lindenlab.com/svn/linden/branches/jakesbranch --> release

Adding Logitech G15 keyboard and Z10 speaker support for those LCD windows.
master
Jake Simpson 2007-04-18 21:08:54 +00:00
parent c94062fb5b
commit 2f438a409e
12 changed files with 152 additions and 4 deletions

View File

@ -47,6 +47,9 @@
#include "llfloaterhtml.h"
#include "llweb.h"
// Used for LCD display
extern void AddNewIMToLCD(const LLString &newLine);
extern void AddNewChatToLCD(const LLString &newLine);
//
// Constants
//
@ -330,6 +333,20 @@ void LLFloaterChat::addChat(const LLChat& chat,
chat.mChatType == CHAT_TYPE_DEBUG_MSG
&& !gSavedSettings.getBOOL("ScriptErrorsAsChat");
#if LL_WINDOWS
// add into LCD displays
if (!invisible_script_debug_chat)
{
if (!from_instant_message)
{
AddNewChatToLCD(chat.mText);
}
else
{
AddNewIMToLCD(chat.mText);
}
}
#endif
if (!invisible_script_debug_chat
&& !chat.mMuted
&& gConsole

View File

@ -31,6 +31,7 @@
#include "llpaneldebug.h"
#include "llpanelgeneral.h"
#include "llpanelinput.h"
#include "llpanelLCD.h"
#include "llpanelmsgs.h"
//#include "llpanelweb.h"
#include "llprefschat.h"
@ -57,6 +58,14 @@ const S32 PREF_FLOATER_MIN_HEIGHT = 2 * SCROLLBAR_SIZE + 2 * LLPANEL_BORDER_WIDT
LLFloaterPreference* LLFloaterPreference::sInstance = NULL;
#if LL_WINDOWS
// for Logitech LCD keyboards / speakers
#ifndef LL_LCD_H
#include "..\Logitech_LCD\LCD.h"
#endif
extern cLCD *LcdScreen;
#endif
// Must be done at run time, not compile time. JC
S32 pref_min_width()
{
@ -85,6 +94,7 @@ LLPreferenceCore::LLPreferenceCore(LLTabContainerCommon* tab_container, LLButton
mDisplayPanel(NULL),
mDisplayPanel2(NULL),
mAudioPanel(NULL),
mLCDPanel(NULL),
mMsgPanel(NULL)
{
mGeneralPanel = new LLPanelGeneral();
@ -123,6 +133,15 @@ LLPreferenceCore::LLPreferenceCore(LLTabContainerCommon* tab_container, LLButton
mTabContainer->addTabPanel(mPrefsIM->getPanel(), mPrefsIM->getPanel()->getLabel(), FALSE, onTabChanged, mTabContainer);
mPrefsIM->getPanel()->setDefaultBtn(default_btn);
#if LL_WINDOWS
// only add this option if we actually have a logitech keyboard / speaker set
if (LcdScreen->Enabled())
{
mLCDPanel = new LLPanelLCD();
mTabContainer->addTabPanel(mLCDPanel, mLCDPanel->getLabel(), FALSE, onTabChanged, mTabContainer);
mLCDPanel->setDefaultBtn(default_btn);
}
#endif
mMsgPanel = new LLPanelMsgs();
gUICtrlFactory->buildPanel(mMsgPanel, "panel_settings_msgbox.xml");
mTabContainer->addTabPanel(mMsgPanel, mMsgPanel->getLabel(), FALSE, onTabChanged, mTabContainer);
@ -148,6 +167,13 @@ void LLPreferenceCore::apply()
mPrefsChat->apply();
mPrefsIM->apply();
mMsgPanel->apply();
#if LL_WINDOWS
// only add this option if we actually have a logitech keyboard / speaker set
if (LcdScreen->Enabled())
{
mLCDPanel->apply();
}
#endif
// mWebPanel->apply();
}
@ -164,6 +190,13 @@ void LLPreferenceCore::cancel()
mPrefsChat->cancel();
mPrefsIM->cancel();
mMsgPanel->cancel();
#if LL_WINDOWS
// only add this option if we actually have a logitech keyboard / speaker set
if (LcdScreen->Enabled())
{
mLCDPanel->cancel();
}
#endif
// mWebPanel->cancel();
}

View File

@ -20,6 +20,7 @@
class LLPanelGeneral;
class LLPanelInput;
class LLPanelLCD;
class LLPanelDisplay;
class LLPanelDisplay2;
class LLPanelDisplay3;
@ -64,6 +65,7 @@ private:
LLPrefsChat *mPrefsChat;
LLPrefsIM *mPrefsIM;
LLPanelMsgs *mMsgPanel;
LLPanelLCD *mLCDPanel;
// LLPanelWeb* mWebPanel;
};

View File

@ -403,6 +403,10 @@ void LLStatusBar::refresh()
pos_y -= pos_y % 2;
}
mRegionDetails.mTime = mTextTime->getText();
mRegionDetails.mBalance = mBalance;
mRegionDetails.mAccesString = (char *)region->getSimAccessString();
mRegionDetails.mPing = region->getNetDetailsForLCD();
if (parcel && parcel->getName())
{
location_name = region->getName()
@ -410,6 +414,43 @@ void LLStatusBar::refresh()
pos_x, pos_y, pos_z,
region->getSimAccessString(),
parcel->getName());
// keep these around for the LCD to use
mRegionDetails.mRegionName = region->getName();
mRegionDetails.mParcelName = (char *)parcel->getName();
mRegionDetails.mX = pos_x;
mRegionDetails.mY = pos_y;
mRegionDetails.mZ = pos_z;
mRegionDetails.mArea = parcel->getArea();
mRegionDetails.mForSale = parcel->getForSale();
mRegionDetails.mTraffic = gParcelMgr->getDwelling();
if (parcel->isPublic())
{
snprintf(mRegionDetails.mOwner, MAX_STRING, "Public");
}
else
{
if (parcel->getIsGroupOwned())
{
if(!parcel->getGroupID().isNull())
{
gCacheName->getGroupName(parcel->getGroupID(), mRegionDetails.mOwner);
}
else
{
snprintf(mRegionDetails.mOwner, MAX_STRING, "Group Owned");
}
}
else
{
// Figure out the owner's name
char owner_first[MAX_STRING]; /*Flawfinder: ignore*/
char owner_last[MAX_STRING]; /*Flawfinder: ignore*/
gCacheName->getName(parcel->getOwnerID(), owner_first, owner_last);
snprintf(mRegionDetails.mOwner, MAX_STRING, "%s %s", owner_first, owner_last); /* Flawfinder: ignore */
}
}
}
else
{
@ -417,12 +458,34 @@ void LLStatusBar::refresh()
+ llformat(" %d, %d, %d (%s)",
pos_x, pos_y, pos_z,
region->getSimAccessString());
// keep these around for the LCD to use
mRegionDetails.mRegionName = region->getName();
mRegionDetails.mParcelName = "Unknown";
mRegionDetails.mX = pos_x;
mRegionDetails.mY = pos_y;
mRegionDetails.mZ = pos_z;
mRegionDetails.mArea = 0;
mRegionDetails.mForSale = FALSE;
snprintf(mRegionDetails.mOwner, MAX_STRING, "Unknown");
mRegionDetails.mTraffic = 0.0f;
}
}
else
{
// no region
location_name = "(Unknown)";
// keep these around for the LCD to use
mRegionDetails.mRegionName = LLString("Unknown");
mRegionDetails.mParcelName = "Unknown";
mRegionDetails.mAccesString = "Unknown";
mRegionDetails.mX = 0;
mRegionDetails.mY = 0;
mRegionDetails.mZ = 0;
mRegionDetails.mArea = 0;
mRegionDetails.mForSale = FALSE;
snprintf(mRegionDetails.mOwner, MAX_STRING, "Unknown");
mRegionDetails.mTraffic = 0.0f;
}
mTextParcelName->setText(location_name);

View File

@ -24,6 +24,25 @@ class LLUUID;
class LLFrameTimer;
class LLStatGraph;
// used by LCD screen
class cLLRegionDetails
{
public:
LLString mRegionName;
char *mParcelName;
char *mAccesString;
S32 mX;
S32 mY;
S32 mZ;
S32 mArea;
BOOL mForSale;
char mOwner[MAX_STRING];
F32 mTraffic;
S32 mBalance;
LLString mTime;
U32 mPing;
};
class LLStatusBar
: public LLPanel
{
@ -60,6 +79,7 @@ public:
S32 getSquareMetersCredit() const;
S32 getSquareMetersCommitted() const;
S32 getSquareMetersLeft() const;
cLLRegionDetails mRegionDetails;
protected:
static void onClickParcelInfo(void*);

View File

@ -104,6 +104,7 @@ public:
F32 getSelectionHeight() const { return F32(mEastNorth.mdV[VY] - mWestSouth.mdV[VY]); }
BOOL getSelection(LLVector3d &min, LLVector3d &max) { min = mWestSouth; max = mEastNorth; return !selectionEmpty();}
LLViewerRegion* getSelectionRegion();
F32 getDwelling() const { return mSelectedDwell;}
void getDisplayInfo(S32* area, S32* claim, S32* rent, BOOL* for_sale, F32* dwell);

View File

@ -724,7 +724,10 @@ void LLViewerRegion::calculateCameraDistance()
mCameraDistanceSquared = (F32)(gAgent.getCameraPositionGlobal() - getCenterGlobal()).magVecSquared();
}
// ---------------- Friends ----------------
U32 LLViewerRegion::getNetDetailsForLCD()
{
return mPingDelay;
}
std::ostream& operator<<(std::ostream &s, const LLViewerRegion &region)
{

View File

@ -212,6 +212,9 @@ public:
friend std::ostream& operator<<(std::ostream &s, const LLViewerRegion &region);
// used by LCD to get details for debug screen
U32 getNetDetailsForLCD();
public:
struct CompareDistance
{

View File

@ -153,7 +153,11 @@ const StatAttributes STAT_INFO[LLViewerStats::ST_COUNT] =
// ST_TEX_BAKES
StatAttributes("Texture Bakes", FALSE, FALSE),
// ST_TEX_REBAKES
StatAttributes("Texture Rebakes", FALSE, FALSE)
StatAttributes("Texture Rebakes", FALSE, FALSE),
// ST_LOGITECH_KEYBOARD
StatAttributes("Logitech LCD", FALSE, FALSE)
};
LLViewerStats::LLViewerStats()

View File

@ -137,8 +137,9 @@ public:
ST_WINDOW_HEIGHT = 55,
ST_TEX_BAKES = 56,
ST_TEX_REBAKES = 57,
ST_LOGITECH_LCD = 58,
ST_COUNT = 58
ST_COUNT = 59
};

BIN
indra/newview/res/icon1.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 766 B

View File

@ -19,6 +19,7 @@
#define IDB_LOGIN 149
#define IDC_CURSOR4 153
#define IDC_CURSOR5 154
#define IDI_LCD_LL_ICON 157
#define IDC_RADIO_56 1000
#define IDC_RADIO_128 1001
#define IDC_RADIO_256 1002
@ -151,7 +152,7 @@
//
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE 156
#define _APS_NEXT_RESOURCE_VALUE 167
#define _APS_NEXT_COMMAND_VALUE 40002
#define _APS_NEXT_CONTROL_VALUE 1139
#define _APS_NEXT_SYMED_VALUE 101