summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTofu Linden <tofu.linden@lindenlab.com>2009-11-09 17:57:56 +0000
committerTofu Linden <tofu.linden@lindenlab.com>2009-11-09 17:57:56 +0000
commit5a9e551c246280077f966933e07024696cbcc53f (patch)
tree220a9f7e0853b10b76bb3e15550598f83c6072ab
parentc9937716aa3a1f7aac0e93fc1d58488d02d30e6e (diff)
parent0777c177525c8ff2889e9cd5f06877de3c5f9f31 (diff)
merge.
-rw-r--r--indra/newview/CMakeLists.txt1
-rw-r--r--indra/newview/llbottomtray.cpp1
-rw-r--r--indra/newview/llnearbychatbar.cpp5
-rw-r--r--indra/newview/llnearbychatbar.h1
-rw-r--r--indra/newview/llspeakbutton.cpp23
-rw-r--r--indra/newview/llspeakbutton.h7
-rw-r--r--indra/newview/llvoiceclient.cpp50
-rw-r--r--indra/newview/llvoiceclient.h3
-rw-r--r--indra/newview/llvowater.cpp2
-rw-r--r--indra/newview/skins/default/xui/en/widgets/talk_button.xml1
10 files changed, 40 insertions, 54 deletions
diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt
index 08e43da9e4..649d86aaa6 100644
--- a/indra/newview/CMakeLists.txt
+++ b/indra/newview/CMakeLists.txt
@@ -1031,7 +1031,6 @@ set(viewer_HEADER_FILES
macmain.h
noise.h
pipeline.h
- randgauss.h
VertexCache.h
VorbisFramework.h
)
diff --git a/indra/newview/llbottomtray.cpp b/indra/newview/llbottomtray.cpp
index a17ba79078..e5cc2fce88 100644
--- a/indra/newview/llbottomtray.cpp
+++ b/indra/newview/llbottomtray.cpp
@@ -50,7 +50,6 @@ LLBottomTray::LLBottomTray(const LLSD&)
mSpeakBtn(NULL),
mNearbyChatBar(NULL),
mToolbarStack(NULL)
-
{
mFactoryMap["chat_bar"] = LLCallbackMap(LLBottomTray::createNearbyChatBar, NULL);
diff --git a/indra/newview/llnearbychatbar.cpp b/indra/newview/llnearbychatbar.cpp
index bcb4edd7c1..d54545971b 100644
--- a/indra/newview/llnearbychatbar.cpp
+++ b/indra/newview/llnearbychatbar.cpp
@@ -695,11 +695,6 @@ LLWString LLNearbyChatBar::stripChannelNumber(const LLWString &mesg, S32* channe
}
}
-void LLNearbyChatBar::setPTTState(bool state)
-{
- mSpeakBtn->setSpeakBtnToggleState(state);
-}
-
void send_chat_from_viewer(const std::string& utf8_out_text, EChatType type, S32 channel)
{
LLMessageSystem* msg = gMessageSystem;
diff --git a/indra/newview/llnearbychatbar.h b/indra/newview/llnearbychatbar.h
index aa25b6aa68..56ee706a97 100644
--- a/indra/newview/llnearbychatbar.h
+++ b/indra/newview/llnearbychatbar.h
@@ -96,7 +96,6 @@ public:
std::string getCurrentChat();
virtual BOOL handleKeyHere( KEY key, MASK mask );
- void setPTTState(bool state);
static void startChat(const char* line);
static void stopChat();
diff --git a/indra/newview/llspeakbutton.cpp b/indra/newview/llspeakbutton.cpp
index cd765b0338..d441762fa6 100644
--- a/indra/newview/llspeakbutton.cpp
+++ b/indra/newview/llspeakbutton.cpp
@@ -62,6 +62,14 @@ LLSpeakButton::Params::Params()
// See widgets/talk_button.xml
}
+void LLSpeakButton::draw()
+{
+ // gVoiceClient is the authoritative global source of info regarding our open-mic state, we merely reflect that state.
+ bool openmic = gVoiceClient->getUserPTTState();
+ mSpeakBtn->setToggleState(openmic);
+ LLUICtrl::draw();
+}
+
LLSpeakButton::LLSpeakButton(const Params& p)
: LLUICtrl(p)
, mPrivateCallPanel(NULL)
@@ -84,7 +92,8 @@ LLSpeakButton::LLSpeakButton(const Params& p)
addChild(mSpeakBtn);
LLTransientFloaterMgr::getInstance()->addControlView(mSpeakBtn);
- mSpeakBtn->setClickedCallback(boost::bind(&LLSpeakButton::onClick_SpeakBtn, this));
+ mSpeakBtn->setMouseDownCallback(boost::bind(&LLSpeakButton::onMouseDown_SpeakBtn, this));
+ mSpeakBtn->setMouseUpCallback(boost::bind(&LLSpeakButton::onMouseUp_SpeakBtn, this));
mSpeakBtn->setToggleState(FALSE);
LLButton::Params show_params = p.show_button;
@@ -122,15 +131,15 @@ LLSpeakButton::~LLSpeakButton()
{
}
-void LLSpeakButton::setSpeakBtnToggleState(bool state)
+void LLSpeakButton::onMouseDown_SpeakBtn()
{
- mSpeakBtn->setToggleState(state);
+ bool down = true;
+ gVoiceClient->inputUserControlState(down); // this method knows/care about whether this translates into a toggle-to-talk or down-to-talk
}
-
-void LLSpeakButton::onClick_SpeakBtn()
+void LLSpeakButton::onMouseUp_SpeakBtn()
{
- bool speaking = mSpeakBtn->getToggleState();
- gVoiceClient->setUserPTTState(speaking);
+ bool down = false;
+ gVoiceClient->inputUserControlState(down);
}
void LLSpeakButton::onClick_ShowBtn()
diff --git a/indra/newview/llspeakbutton.h b/indra/newview/llspeakbutton.h
index f59ded2133..e213c562dd 100644
--- a/indra/newview/llspeakbutton.h
+++ b/indra/newview/llspeakbutton.h
@@ -45,7 +45,6 @@ class LLOutputMonitorCtrl;
* clicked.
*/
class LLSpeakButton : public LLUICtrl
-
{
public:
@@ -61,14 +60,14 @@ public:
};
/*virtual*/ ~LLSpeakButton();
-
- void setSpeakBtnToggleState(bool state);
+ /*virtual*/ void draw();
protected:
friend class LLUICtrlFactory;
LLSpeakButton(const Params& p);
- void onClick_SpeakBtn();
+ void onMouseDown_SpeakBtn();
+ void onMouseUp_SpeakBtn();
void onClick_ShowBtn();
diff --git a/indra/newview/llvoiceclient.cpp b/indra/newview/llvoiceclient.cpp
index df5481c874..39d4bb0c02 100644
--- a/indra/newview/llvoiceclient.cpp
+++ b/indra/newview/llvoiceclient.cpp
@@ -68,9 +68,6 @@
#include "llfloaterfriends.h" //VIVOX, inorder to refresh communicate panel
#include "llfloaterchat.h" // for LLFloaterChat::addChat()
-// for Talk Button's state updating
-#include "llnearbychatbar.h"
-
// for base64 decoding
#include "apr_base64.h"
@@ -5791,7 +5788,6 @@ bool LLVoiceClient::getMuteMic() const
void LLVoiceClient::setUserPTTState(bool ptt)
{
mUserPTTState = ptt;
- if (LLNearbyChatBar::instanceExists()) LLNearbyChatBar::getInstance()->setPTTState(ptt);
}
bool LLVoiceClient::getUserPTTState()
@@ -5802,7 +5798,6 @@ bool LLVoiceClient::getUserPTTState()
void LLVoiceClient::toggleUserPTTState(void)
{
mUserPTTState = !mUserPTTState;
- if (LLNearbyChatBar::instanceExists()) LLNearbyChatBar::getInstance()->setPTTState(mUserPTTState);
}
void LLVoiceClient::setVoiceEnabled(bool enabled)
@@ -5930,8 +5925,6 @@ void LLVoiceClient::setMicGain(F32 volume)
void LLVoiceClient::keyDown(KEY key, MASK mask)
{
-// LL_DEBUGS("Voice") << "key is " << LLKeyboard::stringFromKey(key) << LL_ENDL;
-
if (gKeyboard->getKeyRepeated(key))
{
// ignore auto-repeat keys
@@ -5940,44 +5933,39 @@ void LLVoiceClient::keyDown(KEY key, MASK mask)
if(!mPTTIsMiddleMouse)
{
- if(mPTTIsToggle)
- {
- if(key == mPTTKey)
- {
- toggleUserPTTState();
- }
- }
- else if(mPTTKey != KEY_NONE)
- {
- setUserPTTState(gKeyboard->getKeyDown(mPTTKey));
- }
+ bool down = (mPTTKey != KEY_NONE)
+ && gKeyboard->getKeyDown(mPTTKey);
+ inputUserControlState(down);
}
}
void LLVoiceClient::keyUp(KEY key, MASK mask)
{
if(!mPTTIsMiddleMouse)
{
- if(!mPTTIsToggle && (mPTTKey != KEY_NONE))
+ bool down = (mPTTKey != KEY_NONE)
+ && gKeyboard->getKeyDown(mPTTKey);
+ inputUserControlState(down);
+ }
+}
+void LLVoiceClient::inputUserControlState(bool down)
+{
+ if(mPTTIsToggle)
+ {
+ if(down) // toggle open-mic state on 'down'
{
- setUserPTTState(gKeyboard->getKeyDown(mPTTKey));
+ toggleUserPTTState();
}
}
+ else // set open-mic state as an absolute
+ {
+ setUserPTTState(down);
+ }
}
void LLVoiceClient::middleMouseState(bool down)
{
if(mPTTIsMiddleMouse)
{
- if(mPTTIsToggle)
- {
- if(down)
- {
- toggleUserPTTState();
- }
- }
- else
- {
- setUserPTTState(down);
- }
+ inputUserControlState(down);
}
}
diff --git a/indra/newview/llvoiceclient.h b/indra/newview/llvoiceclient.h
index 9df96d9a52..347fae6156 100644
--- a/indra/newview/llvoiceclient.h
+++ b/indra/newview/llvoiceclient.h
@@ -188,6 +188,7 @@ static void updatePosition(void);
void setUserPTTState(bool ptt);
bool getUserPTTState();
void toggleUserPTTState(void);
+ void inputUserControlState(bool down); // interpret any sort of up-down mic-open control input according to ptt-toggle prefs
void setVoiceEnabled(bool enabled);
static bool voiceEnabled();
void setUsePTT(bool usePTT);
@@ -196,7 +197,7 @@ static void updatePosition(void);
void setEarLocation(S32 loc);
void setVoiceVolume(F32 volume);
void setMicGain(F32 volume);
- void setUserVolume(const LLUUID& id, F32 volume); // set's volume for specified agent, from 0-1 (where .5 is nominal)
+ void setUserVolume(const LLUUID& id, F32 volume); // sets volume for specified agent, from 0-1 (where .5 is nominal)
void setLipSyncEnabled(BOOL enabled);
BOOL lipSyncEnabled();
diff --git a/indra/newview/llvowater.cpp b/indra/newview/llvowater.cpp
index e5ff62746e..a8c4625f6e 100644
--- a/indra/newview/llvowater.cpp
+++ b/indra/newview/llvowater.cpp
@@ -55,8 +55,6 @@ const BOOL gUseRoam = FALSE;
///////////////////////////////////
-#include "randgauss.h"
-
template<class T> inline T LERP(T a, T b, F32 factor)
{
return a + (b - a) * factor;
diff --git a/indra/newview/skins/default/xui/en/widgets/talk_button.xml b/indra/newview/skins/default/xui/en/widgets/talk_button.xml
index d9f39b6937..1d8257fbc8 100644
--- a/indra/newview/skins/default/xui/en/widgets/talk_button.xml
+++ b/indra/newview/skins/default/xui/en/widgets/talk_button.xml
@@ -11,7 +11,6 @@
label_selected="Speak"
font="SansSerifSmall"
tab_stop="false"
- is_toggle="true"
/>
<show_button
name="right"