Added sim console.
This commit is contained in:
@@ -50,7 +50,7 @@
|
|||||||
<key>OpenCircuit</key>
|
<key>OpenCircuit</key>
|
||||||
<map>
|
<map>
|
||||||
<key>flavor</key>
|
<key>flavor</key>
|
||||||
<string>template</string>
|
<string>llsd</string>
|
||||||
<key>trusted-sender</key>
|
<key>trusted-sender</key>
|
||||||
<boolean>false</boolean>
|
<boolean>false</boolean>
|
||||||
</map>
|
</map>
|
||||||
@@ -370,6 +370,14 @@
|
|||||||
</map>
|
</map>
|
||||||
|
|
||||||
<!-- Server to client -->
|
<!-- Server to client -->
|
||||||
|
<key>DisplayNameUpdate</key>
|
||||||
|
<map>
|
||||||
|
<key>flavor</key>
|
||||||
|
<string>llsd</string>
|
||||||
|
<key>trusted-sender</key>
|
||||||
|
<boolean>true</boolean>
|
||||||
|
</map>
|
||||||
|
|
||||||
<key>ParcelVoiceInfo</key>
|
<key>ParcelVoiceInfo</key>
|
||||||
<map>
|
<map>
|
||||||
<key>flavor</key>
|
<key>flavor</key>
|
||||||
@@ -419,6 +427,22 @@
|
|||||||
<boolean>true</boolean>
|
<boolean>true</boolean>
|
||||||
</map>
|
</map>
|
||||||
|
|
||||||
|
<key>SetDisplayNameReply</key>
|
||||||
|
<map>
|
||||||
|
<key>flavor</key>
|
||||||
|
<string>llsd</string>
|
||||||
|
<key>trusted-sender</key>
|
||||||
|
<boolean>true</boolean>
|
||||||
|
</map>
|
||||||
|
|
||||||
|
<key>SimConsoleResponse</key>
|
||||||
|
<map>
|
||||||
|
<key>flavor</key>
|
||||||
|
<string>llsd</string>
|
||||||
|
<key>trusted-sender</key>
|
||||||
|
<boolean>true</boolean>
|
||||||
|
</map>
|
||||||
|
|
||||||
<key>DirLandReply</key>
|
<key>DirLandReply</key>
|
||||||
<map>
|
<map>
|
||||||
<key>flavor</key>
|
<key>flavor</key>
|
||||||
@@ -569,26 +593,9 @@
|
|||||||
<map>
|
<map>
|
||||||
<key>flavor</key>
|
<key>flavor</key>
|
||||||
<string>llsd</string>
|
<string>llsd</string>
|
||||||
<key>trusted-sender</key>
|
<key>trusted-sender</key>
|
||||||
<boolean>true</boolean>
|
<boolean>true</boolean>
|
||||||
</map>
|
</map>
|
||||||
|
|
||||||
<!-- Server to client -->
|
|
||||||
<key>DisplayNameUpdate</key>
|
|
||||||
<map>
|
|
||||||
<key>flavor</key>
|
|
||||||
<string>llsd</string>
|
|
||||||
<key>trusted-sender</key>
|
|
||||||
<boolean>true</boolean>
|
|
||||||
</map>
|
|
||||||
|
|
||||||
<key>SetDisplayNameReply</key>
|
|
||||||
<map>
|
|
||||||
<key>flavor</key>
|
|
||||||
<string>llsd</string>
|
|
||||||
<key>trusted-sender</key>
|
|
||||||
<boolean>true</boolean>
|
|
||||||
</map>
|
|
||||||
|
|
||||||
</map>
|
</map>
|
||||||
<key>capBans</key>
|
<key>capBans</key>
|
||||||
|
|||||||
@@ -250,6 +250,7 @@ set(viewer_SOURCE_FILES
|
|||||||
llfloaterpostprocess.cpp
|
llfloaterpostprocess.cpp
|
||||||
llfloaterpreference.cpp
|
llfloaterpreference.cpp
|
||||||
llfloaterproperties.cpp
|
llfloaterproperties.cpp
|
||||||
|
llfloaterregiondebugconsole.cpp
|
||||||
llfloaterregioninfo.cpp
|
llfloaterregioninfo.cpp
|
||||||
llfloaterreporter.cpp
|
llfloaterreporter.cpp
|
||||||
llfloatersearchreplace.cpp
|
llfloatersearchreplace.cpp
|
||||||
@@ -747,6 +748,7 @@ set(viewer_HEADER_FILES
|
|||||||
llfloaterpreference.h
|
llfloaterpreference.h
|
||||||
llfloaterperms.h
|
llfloaterperms.h
|
||||||
llfloaterproperties.h
|
llfloaterproperties.h
|
||||||
|
llfloaterregiondebugconsole.h
|
||||||
llfloaterregioninfo.h
|
llfloaterregioninfo.h
|
||||||
llfloaterreporter.h
|
llfloaterreporter.h
|
||||||
llfloatersearchreplace.h
|
llfloatersearchreplace.h
|
||||||
|
|||||||
237
indra/newview/llfloaterregiondebugconsole.cpp
Normal file
237
indra/newview/llfloaterregiondebugconsole.cpp
Normal file
@@ -0,0 +1,237 @@
|
|||||||
|
/**
|
||||||
|
* @file llfloaterregiondebugconsole.h
|
||||||
|
* @author Brad Kittenbrink <brad@lindenlab.com>
|
||||||
|
* @brief Quick and dirty console for region debug settings
|
||||||
|
*
|
||||||
|
* $LicenseInfo:firstyear=2010&license=viewerlgpl$
|
||||||
|
* Second Life Viewer Source Code
|
||||||
|
* Copyright (C) 2010, Linden Research, Inc.
|
||||||
|
*
|
||||||
|
* This library is free software; you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU Lesser General Public
|
||||||
|
* License as published by the Free Software Foundation;
|
||||||
|
* version 2.1 of the License only.
|
||||||
|
*
|
||||||
|
* This library is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
* Lesser General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU Lesser General Public
|
||||||
|
* License along with this library; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
*
|
||||||
|
* Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
|
||||||
|
* $/LicenseInfo$
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "llviewerprecompiledheaders.h"
|
||||||
|
|
||||||
|
#include "llfloaterregiondebugconsole.h"
|
||||||
|
|
||||||
|
#include "llagent.h"
|
||||||
|
#include "llhttpclient.h"
|
||||||
|
#include "llhttpnode.h"
|
||||||
|
#include "lllineeditor.h"
|
||||||
|
#include "lltexteditor.h"
|
||||||
|
#include "llviewerregion.h"
|
||||||
|
#include "lluictrlfactory.h"
|
||||||
|
|
||||||
|
// Two versions of the sim console API are supported.
|
||||||
|
//
|
||||||
|
// SimConsole capability (deprecated):
|
||||||
|
// This is the initial implementation that is supported by some versions of the
|
||||||
|
// simulator. It is simple and straight forward, just POST a command and the
|
||||||
|
// body of the response has the result. This API is deprecated because it
|
||||||
|
// doesn't allow the sim to use any asynchronous API.
|
||||||
|
//
|
||||||
|
// SimConsoleAsync capability:
|
||||||
|
// This capability replaces the original SimConsole capability. It is similar
|
||||||
|
// in that the command is POSTed to the SimConsoleAsync cap, but the response
|
||||||
|
// comes in through the event poll, which gives the simulator more flexibility
|
||||||
|
// and allows it to perform complex operations without blocking any frames.
|
||||||
|
//
|
||||||
|
// We will assume the SimConsoleAsync capability is available, and fall back to
|
||||||
|
// the SimConsole cap if it is not. The simulator will only support one or the
|
||||||
|
// other.
|
||||||
|
|
||||||
|
namespace
|
||||||
|
{
|
||||||
|
// Signal used to notify the floater of responses from the asynchronous
|
||||||
|
// API.
|
||||||
|
console_reply_signal_t sConsoleReplySignal;
|
||||||
|
|
||||||
|
const std::string PROMPT("\n\n> ");
|
||||||
|
const std::string UNABLE_TO_SEND_COMMAND(
|
||||||
|
"ERROR: The last command was not received by the server.");
|
||||||
|
const std::string CONSOLE_UNAVAILABLE(
|
||||||
|
"ERROR: No console available for this region/simulator.");
|
||||||
|
const std::string CONSOLE_NOT_SUPPORTED(
|
||||||
|
"This region does not support the simulator console.");
|
||||||
|
|
||||||
|
// This responder handles the initial response. Unless error() is called
|
||||||
|
// we assume that the simulator has received our request. Error will be
|
||||||
|
// called if this request times out.
|
||||||
|
class AsyncConsoleResponder : public LLHTTPClient::Responder
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
/* virtual */
|
||||||
|
void error(U32 status, const std::string& reason)
|
||||||
|
{
|
||||||
|
sConsoleReplySignal(UNABLE_TO_SEND_COMMAND);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
class ConsoleResponder : public LLHTTPClient::Responder
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
ConsoleResponder(LLTextEditor *output) : mOutput(output)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
/*virtual*/
|
||||||
|
void error(U32 status, const std::string& reason)
|
||||||
|
{
|
||||||
|
if (mOutput)
|
||||||
|
{
|
||||||
|
mOutput->appendText(
|
||||||
|
UNABLE_TO_SEND_COMMAND + PROMPT,
|
||||||
|
false, false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/*virtual*/
|
||||||
|
void result(const LLSD& content)
|
||||||
|
{
|
||||||
|
if (mOutput)
|
||||||
|
{
|
||||||
|
mOutput->appendText(
|
||||||
|
content.asString() + PROMPT, false, false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
LLTextEditor * mOutput;
|
||||||
|
};
|
||||||
|
|
||||||
|
// This handles responses for console commands sent via the asynchronous
|
||||||
|
// API.
|
||||||
|
class ConsoleResponseNode : public LLHTTPNode
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
/* virtual */
|
||||||
|
void post(
|
||||||
|
LLHTTPNode::ResponsePtr reponse,
|
||||||
|
const LLSD& context,
|
||||||
|
const LLSD& input) const
|
||||||
|
{
|
||||||
|
llinfos << "Received response from the debug console: "
|
||||||
|
<< input << llendl;
|
||||||
|
sConsoleReplySignal(input["body"].asString());
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
boost::signals2::connection LLFloaterRegionDebugConsole::setConsoleReplyCallback(const console_reply_signal_t::slot_type& cb)
|
||||||
|
{
|
||||||
|
return sConsoleReplySignal.connect(cb);
|
||||||
|
}
|
||||||
|
|
||||||
|
LLFloaterRegionDebugConsole::LLFloaterRegionDebugConsole()
|
||||||
|
: LLFloater(), mOutput(NULL)
|
||||||
|
{
|
||||||
|
mReplySignalConnection = sConsoleReplySignal.connect(
|
||||||
|
boost::bind(
|
||||||
|
&LLFloaterRegionDebugConsole::onReplyReceived,
|
||||||
|
this,
|
||||||
|
_1));
|
||||||
|
|
||||||
|
LLUICtrlFactory::getInstance()->buildFloater(this, "floater_region_debug_console.xml");
|
||||||
|
}
|
||||||
|
|
||||||
|
LLFloaterRegionDebugConsole::~LLFloaterRegionDebugConsole()
|
||||||
|
{
|
||||||
|
mReplySignalConnection.disconnect();
|
||||||
|
}
|
||||||
|
|
||||||
|
BOOL LLFloaterRegionDebugConsole::postBuild()
|
||||||
|
{
|
||||||
|
LLLineEditor* input = getChild<LLLineEditor>("region_debug_console_input");
|
||||||
|
input->setEnableLineHistory(true);
|
||||||
|
input->setCommitCallback(boost::bind(&LLFloaterRegionDebugConsole::onInput, this, _1, _2));
|
||||||
|
input->setFocus(true);
|
||||||
|
input->setCommitOnFocusLost(false);
|
||||||
|
|
||||||
|
mOutput = getChild<LLTextEditor>("region_debug_console_output");
|
||||||
|
|
||||||
|
std::string url = gAgent.getRegion()->getCapability("SimConsoleAsync");
|
||||||
|
if (url.empty())
|
||||||
|
{
|
||||||
|
// Fall back to see if the old API is supported.
|
||||||
|
url = gAgent.getRegion()->getCapability("SimConsole");
|
||||||
|
if (url.empty())
|
||||||
|
{
|
||||||
|
mOutput->appendText(
|
||||||
|
CONSOLE_NOT_SUPPORTED + PROMPT,
|
||||||
|
false, false);
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
mOutput->appendText("> ", false, false);
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
void LLFloaterRegionDebugConsole::onClose(bool app_quitting)
|
||||||
|
{
|
||||||
|
LLFloater::onClose(app_quitting);
|
||||||
|
|
||||||
|
if (!app_quitting)
|
||||||
|
{
|
||||||
|
delete this;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void LLFloaterRegionDebugConsole::onInput(LLUICtrl* ctrl, const LLSD& param)
|
||||||
|
{
|
||||||
|
LLLineEditor* input = static_cast<LLLineEditor*>(ctrl);
|
||||||
|
std::string text = input->getText() + "\n";
|
||||||
|
|
||||||
|
std::string url = gAgent.getRegion()->getCapability("SimConsoleAsync");
|
||||||
|
if (url.empty())
|
||||||
|
{
|
||||||
|
// Fall back to the old API
|
||||||
|
url = gAgent.getRegion()->getCapability("SimConsole");
|
||||||
|
if (url.empty())
|
||||||
|
{
|
||||||
|
text += CONSOLE_UNAVAILABLE + PROMPT;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// Using SimConsole (deprecated)
|
||||||
|
LLHTTPClient::post(
|
||||||
|
url,
|
||||||
|
LLSD(input->getText()),
|
||||||
|
new ConsoleResponder(mOutput));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// Using SimConsoleAsync
|
||||||
|
LLHTTPClient::post(
|
||||||
|
url,
|
||||||
|
LLSD(input->getText()),
|
||||||
|
new AsyncConsoleResponder);
|
||||||
|
}
|
||||||
|
|
||||||
|
mOutput->appendText(text, false, false);
|
||||||
|
input->clear();
|
||||||
|
}
|
||||||
|
|
||||||
|
void LLFloaterRegionDebugConsole::onReplyReceived(const std::string& output)
|
||||||
|
{
|
||||||
|
mOutput->appendText(output + PROMPT, false, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
LLHTTPRegistration<ConsoleResponseNode>
|
||||||
|
gHTTPRegistrationMessageDebugConsoleResponse(
|
||||||
|
"/message/SimConsoleResponse");
|
||||||
63
indra/newview/llfloaterregiondebugconsole.h
Normal file
63
indra/newview/llfloaterregiondebugconsole.h
Normal file
@@ -0,0 +1,63 @@
|
|||||||
|
/**
|
||||||
|
* @file llfloaterregiondebugconsole.h
|
||||||
|
* @author Brad Kittenbrink <brad@lindenlab.com>
|
||||||
|
* @brief Quick and dirty console for region debug settings
|
||||||
|
*
|
||||||
|
* $LicenseInfo:firstyear=2010&license=viewerlgpl$
|
||||||
|
* Second Life Viewer Source Code
|
||||||
|
* Copyright (C) 2010, Linden Research, Inc.
|
||||||
|
*
|
||||||
|
* This library is free software; you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU Lesser General Public
|
||||||
|
* License as published by the Free Software Foundation;
|
||||||
|
* version 2.1 of the License only.
|
||||||
|
*
|
||||||
|
* This library is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
* Lesser General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU Lesser General Public
|
||||||
|
* License along with this library; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
*
|
||||||
|
* Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
|
||||||
|
* $/LicenseInfo$
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef LL_LLFLOATERREGIONDEBUGCONSOLE_H
|
||||||
|
#define LL_LLFLOATERREGIONDEBUGCONSOLE_H
|
||||||
|
|
||||||
|
#include <boost/signals2.hpp>
|
||||||
|
|
||||||
|
#include "llfloater.h"
|
||||||
|
#include "llhttpclient.h"
|
||||||
|
|
||||||
|
class LLTextEditor;
|
||||||
|
|
||||||
|
typedef boost::signals2::signal<
|
||||||
|
void (const std::string& output)> console_reply_signal_t;
|
||||||
|
|
||||||
|
class LLFloaterRegionDebugConsole : public LLFloater, public LLHTTPClient::Responder, public LLSingleton<LLFloaterRegionDebugConsole>
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
LLFloaterRegionDebugConsole();
|
||||||
|
virtual ~LLFloaterRegionDebugConsole();
|
||||||
|
|
||||||
|
// virtual
|
||||||
|
BOOL postBuild();
|
||||||
|
void onClose(bool app_quitting);
|
||||||
|
|
||||||
|
void onInput(LLUICtrl* ctrl, const LLSD& param);
|
||||||
|
|
||||||
|
LLTextEditor * mOutput;
|
||||||
|
|
||||||
|
static boost::signals2::connection setConsoleReplyCallback(const console_reply_signal_t::slot_type& cb);
|
||||||
|
|
||||||
|
private:
|
||||||
|
void onReplyReceived(const std::string& output);
|
||||||
|
|
||||||
|
boost::signals2::connection mReplySignalConnection;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // LL_LLFLOATERREGIONDEBUGCONSOLE_H
|
||||||
@@ -143,6 +143,7 @@
|
|||||||
#include "llfloaterperms.h"
|
#include "llfloaterperms.h"
|
||||||
#include "llfloaterpostprocess.h"
|
#include "llfloaterpostprocess.h"
|
||||||
#include "llfloaterpreference.h"
|
#include "llfloaterpreference.h"
|
||||||
|
#include "llfloaterregiondebugconsole.h"
|
||||||
#include "llfloaterregioninfo.h"
|
#include "llfloaterregioninfo.h"
|
||||||
#include "llfloaterreporter.h"
|
#include "llfloaterreporter.h"
|
||||||
#include "llfloaterscriptdebug.h"
|
#include "llfloaterscriptdebug.h"
|
||||||
@@ -418,6 +419,21 @@ void handle_god_mode(void*);
|
|||||||
// God menu
|
// God menu
|
||||||
void handle_leave_god_mode(void*);
|
void handle_leave_god_mode(void*);
|
||||||
|
|
||||||
|
//Generic handler for singleton-based floaters.
|
||||||
|
template<typename T>
|
||||||
|
BOOL handle_singleton_check(void *)
|
||||||
|
{
|
||||||
|
return T::instanceExists();
|
||||||
|
}
|
||||||
|
template<typename T>
|
||||||
|
void handle_singleton_toggle(void *)
|
||||||
|
{
|
||||||
|
if(!T::instanceExists())
|
||||||
|
T::getInstance();
|
||||||
|
else
|
||||||
|
T::getInstance()->close();
|
||||||
|
}
|
||||||
|
|
||||||
// <edit>
|
// <edit>
|
||||||
void handle_fake_away_status(void*);
|
void handle_fake_away_status(void*);
|
||||||
void handle_area_search(void*);
|
void handle_area_search(void*);
|
||||||
@@ -811,7 +827,7 @@ void init_menus()
|
|||||||
menu->addChild(new LLMenuItemCallGL( "Asset Blacklist",
|
menu->addChild(new LLMenuItemCallGL( "Asset Blacklist",
|
||||||
&handle_blacklist, NULL));
|
&handle_blacklist, NULL));
|
||||||
menu->addChild(new LLMenuItemCheckGL( "Streaming Audio Display",
|
menu->addChild(new LLMenuItemCheckGL( "Streaming Audio Display",
|
||||||
&handle_ticker_toggle, &handle_ticker_enabled, &handle_ticker_check, NULL ));
|
&handle_ticker_toggle, &handle_ticker_enabled, &handle_singleton_check<SHFloaterMediaTicker>, NULL ));
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -1282,6 +1298,7 @@ void init_debug_ui_menu(LLMenuGL* menu)
|
|||||||
(void*)"DoubleClickTeleport"));
|
(void*)"DoubleClickTeleport"));
|
||||||
menu->addSeparator();
|
menu->addSeparator();
|
||||||
// menu->addChild(new LLMenuItemCallGL( "Print Packets Lost", &print_packets_lost, NULL, NULL, 'L', MASK_SHIFT ));
|
// menu->addChild(new LLMenuItemCallGL( "Print Packets Lost", &print_packets_lost, NULL, NULL, 'L', MASK_SHIFT ));
|
||||||
|
menu->addChild(new LLMenuItemCheckGL("Region Debug", handle_singleton_toggle<LLFloaterRegionDebugConsole>, NULL, handle_singleton_check<LLFloaterRegionDebugConsole>,NULL,'`', MASK_CONTROL|MASK_SHIFT));
|
||||||
menu->addChild(new LLMenuItemCheckGL("Debug SelectMgr", menu_toggle_control, NULL, menu_check_control, (void*)"DebugSelectMgr"));
|
menu->addChild(new LLMenuItemCheckGL("Debug SelectMgr", menu_toggle_control, NULL, menu_check_control, (void*)"DebugSelectMgr"));
|
||||||
menu->addChild(new LLMenuItemToggleGL("Debug Clicks", &gDebugClicks));
|
menu->addChild(new LLMenuItemToggleGL("Debug Clicks", &gDebugClicks));
|
||||||
menu->addChild(new LLMenuItemToggleGL("Debug Views", &LLView::sDebugRects));
|
menu->addChild(new LLMenuItemToggleGL("Debug Views", &LLView::sDebugRects));
|
||||||
|
|||||||
@@ -1611,10 +1611,10 @@ void LLViewerRegionImpl::buildCapabilityNames(LLSD& capabilityNames)
|
|||||||
capabilityNames.append("SendUserReport");
|
capabilityNames.append("SendUserReport");
|
||||||
capabilityNames.append("SendUserReportWithScreenshot");
|
capabilityNames.append("SendUserReportWithScreenshot");
|
||||||
capabilityNames.append("ServerReleaseNotes");
|
capabilityNames.append("ServerReleaseNotes");
|
||||||
//capabilityNames.append("SimConsole");
|
capabilityNames.append("SimConsole");
|
||||||
capabilityNames.append("SimulatorFeatures");
|
capabilityNames.append("SimulatorFeatures");
|
||||||
capabilityNames.append("SetDisplayName");
|
capabilityNames.append("SetDisplayName");
|
||||||
//capabilityNames.append("SimConsoleAsync");
|
capabilityNames.append("SimConsoleAsync");
|
||||||
capabilityNames.append("StartGroupProposal");
|
capabilityNames.append("StartGroupProposal");
|
||||||
capabilityNames.append("TextureStats");
|
capabilityNames.append("TextureStats");
|
||||||
capabilityNames.append("UntrustedSimulatorMessage");
|
capabilityNames.append("UntrustedSimulatorMessage");
|
||||||
|
|||||||
@@ -255,10 +255,6 @@ BOOL handle_ticker_enabled(void *)
|
|||||||
{
|
{
|
||||||
return gAudiop && gAudiop->getStreamingAudioImpl() && gAudiop->getStreamingAudioImpl()->supportsMetaData();
|
return gAudiop && gAudiop->getStreamingAudioImpl() && gAudiop->getStreamingAudioImpl()->supportsMetaData();
|
||||||
}
|
}
|
||||||
BOOL handle_ticker_check(void *)
|
|
||||||
{
|
|
||||||
return SHFloaterMediaTicker::instanceExists();
|
|
||||||
}
|
|
||||||
void handle_ticker_toggle(void *)
|
void handle_ticker_toggle(void *)
|
||||||
{
|
{
|
||||||
if(!handle_ticker_enabled(NULL))
|
if(!handle_ticker_enabled(NULL))
|
||||||
|
|||||||
@@ -54,6 +54,5 @@ private:
|
|||||||
|
|
||||||
//Menu callbacks.
|
//Menu callbacks.
|
||||||
BOOL handle_ticker_enabled(void *);
|
BOOL handle_ticker_enabled(void *);
|
||||||
BOOL handle_ticker_check(void *);
|
|
||||||
void handle_ticker_toggle(void *);
|
void handle_ticker_toggle(void *);
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,44 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
|
||||||
|
<floater
|
||||||
|
can_close="true"
|
||||||
|
can_minimize="true"
|
||||||
|
name="region_debug_console"
|
||||||
|
title="Region Debug"
|
||||||
|
can_resize="true"
|
||||||
|
layout="topleft"
|
||||||
|
min_height="300"
|
||||||
|
min_width="300"
|
||||||
|
height="400"
|
||||||
|
width="600"
|
||||||
|
default_tab_group="1">
|
||||||
|
<text_editor
|
||||||
|
left="10"
|
||||||
|
type="string"
|
||||||
|
length="1"
|
||||||
|
follows="all"
|
||||||
|
font="Monospace"
|
||||||
|
bottom="-373"
|
||||||
|
height="353"
|
||||||
|
width="576"
|
||||||
|
ignore_tab="false"
|
||||||
|
layout="topleft"
|
||||||
|
max_length="65536"
|
||||||
|
name="region_debug_console_output"
|
||||||
|
show_line_numbers="false"
|
||||||
|
word_wrap="true"
|
||||||
|
track_bottom="true"
|
||||||
|
enabled="false">
|
||||||
|
</text_editor>
|
||||||
|
<line_editor
|
||||||
|
border_style="line"
|
||||||
|
border_thickness="1"
|
||||||
|
tab_group="1"
|
||||||
|
follows="left|bottom|right"
|
||||||
|
font="SansSerif"
|
||||||
|
height="19"
|
||||||
|
layout="topleft"
|
||||||
|
bottom_delta="-20"
|
||||||
|
max_length="127"
|
||||||
|
name="region_debug_console_input"
|
||||||
|
width="576" />
|
||||||
|
</floater>
|
||||||
Reference in New Issue
Block a user