diff options
author | McCabe Maxsted | 2011-03-04 21:35:09 -0700 |
---|---|---|
committer | McCabe Maxsted | 2011-03-04 21:35:09 -0700 |
commit | 8e616edb3d12024518994e3d64d6b5dd009f6568 (patch) | |
tree | 9025b676911e17ccafe2341cc2958df032eb3a71 /linden/indra | |
parent | Merge remote branch 'thickbrick/weekly' into weekly (diff) | |
parent | update openal and pulse headers to pulseaudio 0.9.21 on linux* (diff) | |
download | meta-impy-8e616edb3d12024518994e3d64d6b5dd009f6568.zip meta-impy-8e616edb3d12024518994e3d64d6b5dd009f6568.tar.gz meta-impy-8e616edb3d12024518994e3d64d6b5dd009f6568.tar.bz2 meta-impy-8e616edb3d12024518994e3d64d6b5dd009f6568.tar.xz |
Merge remote branch 'armin/weekly' into weekly
Diffstat (limited to 'linden/indra')
29 files changed, 219 insertions, 447 deletions
diff --git a/linden/indra/llcommon/llerror.cpp b/linden/indra/llcommon/llerror.cpp index a9587c6..532a453 100644 --- a/linden/indra/llcommon/llerror.cpp +++ b/linden/indra/llcommon/llerror.cpp | |||
@@ -563,7 +563,7 @@ namespace | |||
563 | #if LL_WINDOWS | 563 | #if LL_WINDOWS |
564 | LLError::addRecorder(new RecordToWinDebug); | 564 | LLError::addRecorder(new RecordToWinDebug); |
565 | #endif | 565 | #endif |
566 | 566 | llwarns << "Load LogControlFile from Directory:"<< dir << llendl; | |
567 | LogControlFile& e = LogControlFile::fromDirectory(dir); | 567 | LogControlFile& e = LogControlFile::fromDirectory(dir); |
568 | 568 | ||
569 | // NOTE: We want to explicitly load the file before we add it to the event timer | 569 | // NOTE: We want to explicitly load the file before we add it to the event timer |
diff --git a/linden/indra/llplugin/CMakeLists.txt b/linden/indra/llplugin/CMakeLists.txt index 7a7f4e5..5dbe07c 100644 --- a/linden/indra/llplugin/CMakeLists.txt +++ b/linden/indra/llplugin/CMakeLists.txt | |||
@@ -20,7 +20,6 @@ include_directories( | |||
20 | ${LLRENDER_INCLUDE_DIRS} | 20 | ${LLRENDER_INCLUDE_DIRS} |
21 | ${LLXML_INCLUDE_DIRS} | 21 | ${LLXML_INCLUDE_DIRS} |
22 | ${LLWINDOW_INCLUDE_DIRS} | 22 | ${LLWINDOW_INCLUDE_DIRS} |
23 | ${LLQTWEBKIT_INCLUDE_DIR} | ||
24 | ) | 23 | ) |
25 | 24 | ||
26 | set(llplugin_SOURCE_FILES | 25 | set(llplugin_SOURCE_FILES |
diff --git a/linden/indra/llplugin/llpluginclassmedia.cpp b/linden/indra/llplugin/llpluginclassmedia.cpp index 5a81c46..f0a44f7 100755 --- a/linden/indra/llplugin/llpluginclassmedia.cpp +++ b/linden/indra/llplugin/llpluginclassmedia.cpp | |||
@@ -33,14 +33,14 @@ | |||
33 | * @endcond | 33 | * @endcond |
34 | */ | 34 | */ |
35 | 35 | ||
36 | /// IMPRUDENCE: this is part of the viewer | ||
37 | |||
36 | #include "linden_common.h" | 38 | #include "linden_common.h" |
37 | #include "indra_constants.h" | 39 | #include "indra_constants.h" |
38 | 40 | ||
39 | #include "llpluginclassmedia.h" | 41 | #include "llpluginclassmedia.h" |
40 | #include "llpluginmessageclasses.h" | 42 | #include "llpluginmessageclasses.h" |
41 | 43 | ||
42 | #include "llqtwebkit.h" | ||
43 | |||
44 | static int LOW_PRIORITY_TEXTURE_SIZE_DEFAULT = 256; | 44 | static int LOW_PRIORITY_TEXTURE_SIZE_DEFAULT = 256; |
45 | 45 | ||
46 | static int nextPowerOf2( int value ) | 46 | static int nextPowerOf2( int value ) |
@@ -777,7 +777,7 @@ void LLPluginClassMedia::receivePluginMessage(const LLPluginMessage &message) | |||
777 | mDirtyRect.unionWith(newDirtyRect); | 777 | mDirtyRect.unionWith(newDirtyRect); |
778 | } | 778 | } |
779 | 779 | ||
780 | LL_DEBUGS("PluginClassMedia") << "adjusted incoming rect is: (" | 780 | LL_DEBUGS("PluginClassMediaRect") << "adjusted incoming rect is: (" |
781 | << newDirtyRect.mLeft << ", " | 781 | << newDirtyRect.mLeft << ", " |
782 | << newDirtyRect.mTop << ", " | 782 | << newDirtyRect.mTop << ", " |
783 | << newDirtyRect.mRight << ", " | 783 | << newDirtyRect.mRight << ", " |
@@ -973,6 +973,7 @@ void LLPluginClassMedia::receivePluginMessage(const LLPluginMessage &message) | |||
973 | { | 973 | { |
974 | mClickURL = message.getValue("uri"); | 974 | mClickURL = message.getValue("uri"); |
975 | mClickTarget = message.getValue("target"); | 975 | mClickTarget = message.getValue("target"); |
976 | LL_DEBUGS("PluginClassMedia") << "Click target \"" << mClickTarget << "\"" << LL_ENDL; | ||
976 | mediaEvent(LLPluginClassMediaOwner::MEDIA_EVENT_CLICK_LINK_HREF); | 977 | mediaEvent(LLPluginClassMediaOwner::MEDIA_EVENT_CLICK_LINK_HREF); |
977 | } | 978 | } |
978 | else if(message_name == "click_nofollow") | 979 | else if(message_name == "click_nofollow") |
diff --git a/linden/indra/llplugin/llpluginclassmediaowner.h b/linden/indra/llplugin/llpluginclassmediaowner.h index 9d1f352..0e54f7f 100755 --- a/linden/indra/llplugin/llpluginclassmediaowner.h +++ b/linden/indra/llplugin/llpluginclassmediaowner.h | |||
@@ -41,7 +41,7 @@ | |||
41 | #include <queue> | 41 | #include <queue> |
42 | 42 | ||
43 | class LLPluginClassMedia; | 43 | class LLPluginClassMedia; |
44 | class LLPluginCookieStore; | 44 | //class LLPluginCookieStore; // IMPRUDENCE: this is currently not used |
45 | 45 | ||
46 | class LLPluginClassMediaOwner | 46 | class LLPluginClassMediaOwner |
47 | { | 47 | { |
diff --git a/linden/indra/llplugin/llplugincookiestore.cpp b/linden/indra/llplugin/llplugincookiestore.cpp index 283ba35..6b193de 100644 --- a/linden/indra/llplugin/llplugincookiestore.cpp +++ b/linden/indra/llplugin/llplugincookiestore.cpp | |||
@@ -33,6 +33,8 @@ | |||
33 | * @endcond | 33 | * @endcond |
34 | */ | 34 | */ |
35 | 35 | ||
36 | /// IMPRUDENCE: this is currently not used | ||
37 | |||
36 | #include "linden_common.h" | 38 | #include "linden_common.h" |
37 | #include "indra_constants.h" | 39 | #include "indra_constants.h" |
38 | 40 | ||
diff --git a/linden/indra/llplugin/llplugininstance.cpp b/linden/indra/llplugin/llplugininstance.cpp index 67457f2..399f157 100755 --- a/linden/indra/llplugin/llplugininstance.cpp +++ b/linden/indra/llplugin/llplugininstance.cpp | |||
@@ -33,6 +33,8 @@ | |||
33 | * @endcond | 33 | * @endcond |
34 | */ | 34 | */ |
35 | 35 | ||
36 | /// IMPRUDENCE: this is part of the SLPlugin | ||
37 | |||
36 | #include "linden_common.h" | 38 | #include "linden_common.h" |
37 | 39 | ||
38 | #include "llplugininstance.h" | 40 | #include "llplugininstance.h" |
diff --git a/linden/indra/llplugin/llpluginmessage.cpp b/linden/indra/llplugin/llpluginmessage.cpp index 6452f4a..0810a04 100755 --- a/linden/indra/llplugin/llpluginmessage.cpp +++ b/linden/indra/llplugin/llpluginmessage.cpp | |||
@@ -33,6 +33,8 @@ | |||
33 | * @endcond | 33 | * @endcond |
34 | */ | 34 | */ |
35 | 35 | ||
36 | /// IMPRUDENCE: this is part of the viewer and the SLPlugin and the libmedia_plugin_* libraries | ||
37 | |||
36 | #include "linden_common.h" | 38 | #include "linden_common.h" |
37 | 39 | ||
38 | #include "llpluginmessage.h" | 40 | #include "llpluginmessage.h" |
diff --git a/linden/indra/llplugin/llpluginmessagepipe.cpp b/linden/indra/llplugin/llpluginmessagepipe.cpp index ac3a902..2cad188 100755 --- a/linden/indra/llplugin/llpluginmessagepipe.cpp +++ b/linden/indra/llplugin/llpluginmessagepipe.cpp | |||
@@ -33,6 +33,8 @@ | |||
33 | * @endcond | 33 | * @endcond |
34 | */ | 34 | */ |
35 | 35 | ||
36 | /// IMPRUDENCE: this is part of the viewer and the SLPlugin | ||
37 | |||
36 | #include "linden_common.h" | 38 | #include "linden_common.h" |
37 | 39 | ||
38 | #include "llpluginmessagepipe.h" | 40 | #include "llpluginmessagepipe.h" |
diff --git a/linden/indra/llplugin/llpluginprocesschild.cpp b/linden/indra/llplugin/llpluginprocesschild.cpp index a1291c0..0d95cac 100755 --- a/linden/indra/llplugin/llpluginprocesschild.cpp +++ b/linden/indra/llplugin/llpluginprocesschild.cpp | |||
@@ -33,6 +33,8 @@ | |||
33 | * @endcond | 33 | * @endcond |
34 | */ | 34 | */ |
35 | 35 | ||
36 | /// IMPRUDENCE: this is part of the SLPlugin | ||
37 | |||
36 | #include "linden_common.h" | 38 | #include "linden_common.h" |
37 | 39 | ||
38 | #include "llpluginprocesschild.h" | 40 | #include "llpluginprocesschild.h" |
diff --git a/linden/indra/llplugin/llpluginprocessparent.cpp b/linden/indra/llplugin/llpluginprocessparent.cpp index 5a66279..26572a0 100755 --- a/linden/indra/llplugin/llpluginprocessparent.cpp +++ b/linden/indra/llplugin/llpluginprocessparent.cpp | |||
@@ -33,6 +33,8 @@ | |||
33 | * @endcond | 33 | * @endcond |
34 | */ | 34 | */ |
35 | 35 | ||
36 | /// IMPRUDENCE: this is part of the viewer | ||
37 | |||
36 | #include "linden_common.h" | 38 | #include "linden_common.h" |
37 | 39 | ||
38 | #include "llpluginprocessparent.h" | 40 | #include "llpluginprocessparent.h" |
diff --git a/linden/indra/llplugin/llpluginsharedmemory.cpp b/linden/indra/llplugin/llpluginsharedmemory.cpp index 6becb8d..882a2a1 100755 --- a/linden/indra/llplugin/llpluginsharedmemory.cpp +++ b/linden/indra/llplugin/llpluginsharedmemory.cpp | |||
@@ -33,6 +33,8 @@ | |||
33 | * @endcond | 33 | * @endcond |
34 | */ | 34 | */ |
35 | 35 | ||
36 | /// IMPRUDENCE: this is part of the viewer and the SLPlugin | ||
37 | |||
36 | #include "linden_common.h" | 38 | #include "linden_common.h" |
37 | 39 | ||
38 | #include "llpluginsharedmemory.h" | 40 | #include "llpluginsharedmemory.h" |
@@ -89,7 +91,6 @@ | |||
89 | #include <windows.h> | 91 | #include <windows.h> |
90 | #endif // USE_APR_SHARED_MEMORY | 92 | #endif // USE_APR_SHARED_MEMORY |
91 | 93 | ||
92 | |||
93 | int LLPluginSharedMemory::sSegmentNumber = 0; | 94 | int LLPluginSharedMemory::sSegmentNumber = 0; |
94 | 95 | ||
95 | std::string LLPluginSharedMemory::createName(void) | 96 | std::string LLPluginSharedMemory::createName(void) |
diff --git a/linden/indra/llplugin/slplugin/slplugin.cpp b/linden/indra/llplugin/slplugin/slplugin.cpp index 878577b..347f1de 100755 --- a/linden/indra/llplugin/slplugin/slplugin.cpp +++ b/linden/indra/llplugin/slplugin/slplugin.cpp | |||
@@ -35,6 +35,7 @@ | |||
35 | * @endcond | 35 | * @endcond |
36 | */ | 36 | */ |
37 | 37 | ||
38 | /// IMPRUDENCE: this is part of the SLPlugin | ||
38 | 39 | ||
39 | #include "linden_common.h" | 40 | #include "linden_common.h" |
40 | 41 | ||
@@ -53,6 +54,20 @@ | |||
53 | #include <signal.h> | 54 | #include <signal.h> |
54 | #endif | 55 | #endif |
55 | 56 | ||
57 | //imprudence: or we include lldir, or use apache runtime | ||
58 | //though the one is probably bloat and the other we rather want to avoid | ||
59 | #include <stdio.h> // FILENAME_MAX | ||
60 | #ifdef WINDOWS | ||
61 | #include <direct.h> | ||
62 | #define getImpruDir _getcwd | ||
63 | #define DIR_DELIMITER "\\" | ||
64 | #else | ||
65 | #include <unistd.h> | ||
66 | #define getImpruDir getcwd | ||
67 | #define DIR_DELIMITER "/" | ||
68 | #endif | ||
69 | |||
70 | |||
56 | /* | 71 | /* |
57 | On Mac OS, since we call WaitNextEvent, this process will show up in the dock unless we set the LSBackgroundOnly or LSUIElement flag in the Info.plist. | 72 | On Mac OS, since we call WaitNextEvent, this process will show up in the dock unless we set the LSBackgroundOnly or LSUIElement flag in the Info.plist. |
58 | 73 | ||
@@ -187,9 +202,28 @@ int main(int argc, char **argv) | |||
187 | { | 202 | { |
188 | // Set up llerror logging | 203 | // Set up llerror logging |
189 | { | 204 | { |
190 | LLError::initForApplication("."); | 205 | std::string path; |
191 | LLError::setDefaultLevel(LLError::LEVEL_INFO); | 206 | char impruPath[FILENAME_MAX]; |
192 | // LLError::setTagLevel("Plugin", LLError::LEVEL_DEBUG); | 207 | |
208 | if (!getImpruDir(impruPath, sizeof(impruPath))) | ||
209 | { | ||
210 | path = "."; //FIXME: root directory of the system - bad idea | ||
211 | } | ||
212 | else | ||
213 | { | ||
214 | path = std::string(impruPath); | ||
215 | |||
216 | path.append(DIR_DELIMITER); | ||
217 | path.append("app_settings"); | ||
218 | } | ||
219 | LLError::initForApplication(path); | ||
220 | // LLError::setDefaultLevel(LLError::LEVEL_INFO); | ||
221 | // LLError::setPrintLocation(true); | ||
222 | // LLError::setTagLevel("Plugin", LLError::LEVEL_DEBUG); | ||
223 | // LLError::setTagLevel("PluginPipe", LLError::LEVEL_DEBUG); | ||
224 | // LLError::setTagLevel("PluginChild", LLError::LEVEL_DEBUG); | ||
225 | // LLError::setTagLevel("PluginInstance", LLError::LEVEL_DEBUG); | ||
226 | |||
193 | // LLError::logToFile("slplugin.log"); | 227 | // LLError::logToFile("slplugin.log"); |
194 | } | 228 | } |
195 | 229 | ||
diff --git a/linden/indra/media_plugins/gstreamer010/media_plugin_gstreamer010.cpp b/linden/indra/media_plugins/gstreamer010/media_plugin_gstreamer010.cpp index 7e2833a..553cdd5 100755 --- a/linden/indra/media_plugins/gstreamer010/media_plugin_gstreamer010.cpp +++ b/linden/indra/media_plugins/gstreamer010/media_plugin_gstreamer010.cpp | |||
@@ -181,7 +181,7 @@ MediaPluginGStreamer010::MediaPluginGStreamer010( | |||
181 | mVideoSink ( NULL ), | 181 | mVideoSink ( NULL ), |
182 | mCommand ( COMMAND_NONE ) | 182 | mCommand ( COMMAND_NONE ) |
183 | { | 183 | { |
184 | writeToLog("MediaPluginGStreamer010 PID=%u", U32(LL_GETPID())); | 184 | writeToLog((char*)"MediaPluginGStreamer010 PID=%u", U32(LL_GETPID())); |
185 | } | 185 | } |
186 | 186 | ||
187 | /////////////////////////////////////////////////////////////////////////////// | 187 | /////////////////////////////////////////////////////////////////////////////// |
@@ -236,7 +236,7 @@ MediaPluginGStreamer010::processGSTEvents(GstBus *bus, | |||
236 | GST_MESSAGE_TYPE(message) != GST_MESSAGE_BUFFERING && | 236 | GST_MESSAGE_TYPE(message) != GST_MESSAGE_BUFFERING && |
237 | GST_MESSAGE_TYPE(message) != GST_MESSAGE_TAG) | 237 | GST_MESSAGE_TYPE(message) != GST_MESSAGE_TAG) |
238 | { | 238 | { |
239 | writeToLog("Got GST message type: %s", GST_MESSAGE_TYPE_NAME (message)); | 239 | writeToLog((char*)"Got GST message type: %s", GST_MESSAGE_TYPE_NAME (message)); |
240 | } | 240 | } |
241 | 241 | ||
242 | switch (GST_MESSAGE_TYPE (message)) | 242 | switch (GST_MESSAGE_TYPE (message)) |
@@ -246,7 +246,7 @@ MediaPluginGStreamer010::processGSTEvents(GstBus *bus, | |||
246 | // NEEDS GST 0.10.11+ and America discovered by C.Columbus | 246 | // NEEDS GST 0.10.11+ and America discovered by C.Columbus |
247 | gint percent = 0; | 247 | gint percent = 0; |
248 | gst_message_parse_buffering(message, &percent); | 248 | gst_message_parse_buffering(message, &percent); |
249 | writeToLog("GST buffering: %d%%", percent); | 249 | writeToLog((char*)"GST buffering: %d%%", percent); |
250 | 250 | ||
251 | break; | 251 | break; |
252 | } | 252 | } |
@@ -260,7 +260,7 @@ MediaPluginGStreamer010::processGSTEvents(GstBus *bus, | |||
260 | &pending_state); | 260 | &pending_state); |
261 | #ifdef LL_GST_REPORT_STATE_CHANGES | 261 | #ifdef LL_GST_REPORT_STATE_CHANGES |
262 | // not generally very useful, and rather spammy. | 262 | // not generally very useful, and rather spammy. |
263 | writeToLog("state change (old,<new>,pending): %s,<%s>,%s", | 263 | writeToLog((char*)"state change (old,<new>,pending): %s,<%s>,%s", |
264 | get_gst_state_name(old_state), | 264 | get_gst_state_name(old_state), |
265 | get_gst_state_name(new_state), | 265 | get_gst_state_name(new_state), |
266 | get_gst_state_name(pending_state)); | 266 | get_gst_state_name(pending_state)); |
@@ -290,7 +290,7 @@ MediaPluginGStreamer010::processGSTEvents(GstBus *bus, | |||
290 | gchar *debug = NULL; | 290 | gchar *debug = NULL; |
291 | 291 | ||
292 | gst_message_parse_error (message, &err, &debug); | 292 | gst_message_parse_error (message, &err, &debug); |
293 | writeToLog("GST error: %s", err?err->message:"(unknown)"); | 293 | writeToLog((char*)"GST error: %s", err?err->message:"(unknown)"); |
294 | if (err) | 294 | if (err) |
295 | g_error_free (err); | 295 | g_error_free (err); |
296 | g_free (debug); | 296 | g_free (debug); |
@@ -307,7 +307,7 @@ MediaPluginGStreamer010::processGSTEvents(GstBus *bus, | |||
307 | gchar *debug = NULL; | 307 | gchar *debug = NULL; |
308 | 308 | ||
309 | gst_message_parse_info (message, &err, &debug); | 309 | gst_message_parse_info (message, &err, &debug); |
310 | writeToLog("GST info: %s", err?err->message:"(unknown)"); | 310 | writeToLog((char*)"GST info: %s", err?err->message:"(unknown)"); |
311 | if (err) | 311 | if (err) |
312 | g_error_free (err); | 312 | g_error_free (err); |
313 | g_free (debug); | 313 | g_free (debug); |
@@ -320,7 +320,7 @@ MediaPluginGStreamer010::processGSTEvents(GstBus *bus, | |||
320 | gchar *debug = NULL; | 320 | gchar *debug = NULL; |
321 | 321 | ||
322 | gst_message_parse_warning (message, &err, &debug); | 322 | gst_message_parse_warning (message, &err, &debug); |
323 | writeToLog("GST warning: %s", err?err->message:"(unknown)"); | 323 | writeToLog((char*)"GST warning: %s", err?err->message:"(unknown)"); |
324 | if (err) | 324 | if (err) |
325 | g_error_free (err); | 325 | g_error_free (err); |
326 | g_free (debug); | 326 | g_free (debug); |
@@ -337,7 +337,7 @@ MediaPluginGStreamer010::processGSTEvents(GstBus *bus, | |||
337 | 337 | ||
338 | if ( gst_tag_list_get_string(new_tags, GST_TAG_TITLE, &title) ) | 338 | if ( gst_tag_list_get_string(new_tags, GST_TAG_TITLE, &title) ) |
339 | { | 339 | { |
340 | //writeToLog("Title: %s", title); | 340 | //writeToLog((char*)"Title: %s", title); |
341 | std::string newtitle(title); | 341 | std::string newtitle(title); |
342 | gst_tag_list_free(new_tags); | 342 | gst_tag_list_free(new_tags); |
343 | 343 | ||
@@ -356,10 +356,10 @@ MediaPluginGStreamer010::processGSTEvents(GstBus *bus, | |||
356 | case GST_MESSAGE_EOS: | 356 | case GST_MESSAGE_EOS: |
357 | { | 357 | { |
358 | /* end-of-stream */ | 358 | /* end-of-stream */ |
359 | writeToLog("GST end-of-stream."); | 359 | writeToLog((char*)"GST end-of-stream."); |
360 | if (mIsLooping) | 360 | if (mIsLooping) |
361 | { | 361 | { |
362 | //writeToLog("looping media..."); | 362 | //writeToLog((char*)"looping media..."); |
363 | double eos_pos_sec = 0.0F; | 363 | double eos_pos_sec = 0.0F; |
364 | bool got_eos_position = getTimePos(eos_pos_sec); | 364 | bool got_eos_position = getTimePos(eos_pos_sec); |
365 | 365 | ||
@@ -368,7 +368,7 @@ MediaPluginGStreamer010::processGSTEvents(GstBus *bus, | |||
368 | // if we know that the movie is really short, don't | 368 | // if we know that the movie is really short, don't |
369 | // loop it else it can easily become a time-hog | 369 | // loop it else it can easily become a time-hog |
370 | // because of GStreamer spin-up overhead | 370 | // because of GStreamer spin-up overhead |
371 | writeToLog("really short movie (%0.3fsec) - not gonna loop this, pausing instead.", eos_pos_sec); | 371 | writeToLog((char*)"really short movie (%0.3fsec) - not gonna loop this, pausing instead.", eos_pos_sec); |
372 | // inject a COMMAND_PAUSE | 372 | // inject a COMMAND_PAUSE |
373 | mCommand = COMMAND_PAUSE; | 373 | mCommand = COMMAND_PAUSE; |
374 | } | 374 | } |
@@ -387,7 +387,7 @@ MediaPluginGStreamer010::processGSTEvents(GstBus *bus, | |||
387 | else | 387 | else |
388 | #endif // LLGST_LOOP_BY_SEEKING | 388 | #endif // LLGST_LOOP_BY_SEEKING |
389 | { // use clumsy stop-start to loop | 389 | { // use clumsy stop-start to loop |
390 | writeToLog("didn't loop by rewinding - stopping and starting instead..."); | 390 | writeToLog((char*)"didn't loop by rewinding - stopping and starting instead..."); |
391 | stop(); | 391 | stop(); |
392 | play(1.0); | 392 | play(1.0); |
393 | } | 393 | } |
@@ -433,7 +433,7 @@ MediaPluginGStreamer010::navigateTo ( const std::string urlIn ) | |||
433 | 433 | ||
434 | setStatus(STATUS_LOADING); | 434 | setStatus(STATUS_LOADING); |
435 | 435 | ||
436 | writeToLog("Setting media URI: %s", urlIn.c_str()); | 436 | writeToLog((char*)"Setting media URI: %s", urlIn.c_str()); |
437 | 437 | ||
438 | mSeekWanted = false; | 438 | mSeekWanted = false; |
439 | 439 | ||
@@ -461,13 +461,13 @@ MediaPluginGStreamer010::update(int milliseconds) | |||
461 | if (!mDoneInit) | 461 | if (!mDoneInit) |
462 | return false; // error | 462 | return false; // error |
463 | 463 | ||
464 | //writeToLog("updating media..."); | 464 | //writeToLog((char*)"updating media..."); |
465 | 465 | ||
466 | // sanity check | 466 | // sanity check |
467 | if (NULL == mPump || | 467 | if (NULL == mPump || |
468 | NULL == mPlaybin) | 468 | NULL == mPlaybin) |
469 | { | 469 | { |
470 | writeToLog("dead media..."); | 470 | writeToLog((char*)"dead media..."); |
471 | return false; | 471 | return false; |
472 | } | 472 | } |
473 | 473 | ||
@@ -497,7 +497,7 @@ MediaPluginGStreamer010::update(int milliseconds) | |||
497 | GST_OBJECT_LOCK(mVideoSink); | 497 | GST_OBJECT_LOCK(mVideoSink); |
498 | if (mVideoSink->retained_frame_ready) | 498 | if (mVideoSink->retained_frame_ready) |
499 | { | 499 | { |
500 | writeToLog("NEW FRAME READY"); | 500 | writeToLog((char*)"NEW FRAME READY"); |
501 | 501 | ||
502 | if (mVideoSink->retained_frame_width != mCurrentWidth || | 502 | if (mVideoSink->retained_frame_width != mCurrentWidth || |
503 | mVideoSink->retained_frame_height != mCurrentHeight) | 503 | mVideoSink->retained_frame_height != mCurrentHeight) |
@@ -528,7 +528,7 @@ MediaPluginGStreamer010::update(int milliseconds) | |||
528 | GST_OBJECT_UNLOCK(mVideoSink); | 528 | GST_OBJECT_UNLOCK(mVideoSink); |
529 | 529 | ||
530 | mCurrentRowbytes = neww * newd; | 530 | mCurrentRowbytes = neww * newd; |
531 | writeToLog("video container resized to %dx%d", | 531 | writeToLog((char*)"video container resized to %dx%d", |
532 | neww, newh); | 532 | neww, newh); |
533 | 533 | ||
534 | mDepth = newd; | 534 | mDepth = newd; |
@@ -556,7 +556,7 @@ MediaPluginGStreamer010::update(int milliseconds) | |||
556 | } | 556 | } |
557 | 557 | ||
558 | GST_OBJECT_UNLOCK(mVideoSink); | 558 | GST_OBJECT_UNLOCK(mVideoSink); |
559 | writeToLog("NEW FRAME REALLY TRULY CONSUMED, TELLING HOST"); | 559 | writeToLog((char*)"NEW FRAME REALLY TRULY CONSUMED, TELLING HOST"); |
560 | 560 | ||
561 | setDirty(0,0,mCurrentWidth,mCurrentHeight); | 561 | setDirty(0,0,mCurrentWidth,mCurrentHeight); |
562 | } | 562 | } |
@@ -567,7 +567,7 @@ MediaPluginGStreamer010::update(int milliseconds) | |||
567 | 567 | ||
568 | GST_OBJECT_UNLOCK(mVideoSink); | 568 | GST_OBJECT_UNLOCK(mVideoSink); |
569 | 569 | ||
570 | writeToLog("NEW FRAME not consumed, still waiting for a shm segment and/or shm resize"); | 570 | writeToLog((char*)"NEW FRAME not consumed, still waiting for a shm segment and/or shm resize"); |
571 | } | 571 | } |
572 | 572 | ||
573 | return true; | 573 | return true; |
@@ -606,7 +606,7 @@ MediaPluginGStreamer010::mouseMove( int x, int y ) | |||
606 | bool | 606 | bool |
607 | MediaPluginGStreamer010::pause() | 607 | MediaPluginGStreamer010::pause() |
608 | { | 608 | { |
609 | writeToLog("pausing media..."); | 609 | writeToLog((char*)"pausing media..."); |
610 | // todo: error-check this? | 610 | // todo: error-check this? |
611 | gst_element_set_state(mPlaybin, GST_STATE_PAUSED); | 611 | gst_element_set_state(mPlaybin, GST_STATE_PAUSED); |
612 | return true; | 612 | return true; |
@@ -615,7 +615,7 @@ MediaPluginGStreamer010::pause() | |||
615 | bool | 615 | bool |
616 | MediaPluginGStreamer010::stop() | 616 | MediaPluginGStreamer010::stop() |
617 | { | 617 | { |
618 | writeToLog("stopping media..."); | 618 | writeToLog((char*)"stopping media..."); |
619 | // todo: error-check this? | 619 | // todo: error-check this? |
620 | gst_element_set_state(mPlaybin, GST_STATE_READY); | 620 | gst_element_set_state(mPlaybin, GST_STATE_READY); |
621 | return true; | 621 | return true; |
@@ -625,7 +625,7 @@ bool | |||
625 | MediaPluginGStreamer010::play(double rate) | 625 | MediaPluginGStreamer010::play(double rate) |
626 | { | 626 | { |
627 | // NOTE: we don't actually support non-natural rate. | 627 | // NOTE: we don't actually support non-natural rate. |
628 | writeToLog("playing media... rate=%f", rate); | 628 | writeToLog((char*)"playing media... rate=%f", rate); |
629 | // todo: error-check this? | 629 | // todo: error-check this? |
630 | gst_element_set_state(mPlaybin, GST_STATE_PLAYING); | 630 | gst_element_set_state(mPlaybin, GST_STATE_PLAYING); |
631 | return true; | 631 | return true; |
@@ -662,7 +662,7 @@ MediaPluginGStreamer010::seek(double time_sec) | |||
662 | GST_SEEK_TYPE_SET, gint64(time_sec*GST_SECOND), | 662 | GST_SEEK_TYPE_SET, gint64(time_sec*GST_SECOND), |
663 | GST_SEEK_TYPE_NONE, GST_CLOCK_TIME_NONE); | 663 | GST_SEEK_TYPE_NONE, GST_CLOCK_TIME_NONE); |
664 | } | 664 | } |
665 | writeToLog("MEDIA SEEK REQUEST to %f sec result was %d", | 665 | writeToLog((char*)"MEDIA SEEK REQUEST to %f sec result was %d", |
666 | float(time_sec), int(success)); | 666 | float(time_sec), int(success)); |
667 | return success; | 667 | return success; |
668 | } | 668 | } |
@@ -716,7 +716,7 @@ MediaPluginGStreamer010::load() | |||
716 | 716 | ||
717 | setStatus(STATUS_LOADING); | 717 | setStatus(STATUS_LOADING); |
718 | 718 | ||
719 | writeToLog("setting up media..."); | 719 | writeToLog((char*)"setting up media..."); |
720 | 720 | ||
721 | mIsLooping = false; | 721 | mIsLooping = false; |
722 | mVolume = (float) 0.1234567; // minor hack to force an initial volume update | 722 | mVolume = (float) 0.1234567; // minor hack to force an initial volume update |
@@ -755,7 +755,7 @@ MediaPluginGStreamer010::load() | |||
755 | GST_SLVIDEO(gst_element_factory_make ("private-slvideo", "slvideo")); | 755 | GST_SLVIDEO(gst_element_factory_make ("private-slvideo", "slvideo")); |
756 | if (!mVideoSink) | 756 | if (!mVideoSink) |
757 | { | 757 | { |
758 | writeToLog("Could not instantiate private-slvideo element."); | 758 | writeToLog((char*)"Could not instantiate private-slvideo element."); |
759 | // todo: cleanup. | 759 | // todo: cleanup. |
760 | setStatus(STATUS_ERROR); | 760 | setStatus(STATUS_ERROR); |
761 | return false; // error | 761 | return false; // error |
@@ -774,7 +774,7 @@ MediaPluginGStreamer010::unload () | |||
774 | if (!mDoneInit) | 774 | if (!mDoneInit) |
775 | return false; // error | 775 | return false; // error |
776 | 776 | ||
777 | writeToLog("unloading media..."); | 777 | writeToLog((char*)"unloading media..."); |
778 | 778 | ||
779 | // stop getting callbacks for this bus | 779 | // stop getting callbacks for this bus |
780 | g_source_remove(mBusWatchID); | 780 | g_source_remove(mBusWatchID); |
@@ -832,7 +832,7 @@ MediaPluginGStreamer010::startup() | |||
832 | "libgstvideo-0.10.so.0") ) | 832 | "libgstvideo-0.10.so.0") ) |
833 | #endif | 833 | #endif |
834 | { | 834 | { |
835 | writeToLog("Couldn't find suitable GStreamer 0.10 support on this system - video playback disabled."); | 835 | writeToLog((char*)"Couldn't find suitable GStreamer 0.10 support on this system - video playback disabled."); |
836 | return false; | 836 | return false; |
837 | } | 837 | } |
838 | */ | 838 | */ |
@@ -842,7 +842,7 @@ MediaPluginGStreamer010::startup() | |||
842 | // } | 842 | // } |
843 | // else | 843 | // else |
844 | // { | 844 | // { |
845 | // writeToLog("gst_segtrap_set_enabled() is not available; plugin crashes won't be caught."); | 845 | // writeToLog((char*)"gst_segtrap_set_enabled() is not available; plugin crashes won't be caught."); |
846 | // } | 846 | // } |
847 | /* | 847 | /* |
848 | #if LL_LINUX | 848 | #if LL_LINUX |
@@ -885,12 +885,12 @@ MediaPluginGStreamer010::startup() | |||
885 | { | 885 | { |
886 | if (err) | 886 | if (err) |
887 | { | 887 | { |
888 | writeToLog("GST init failed: %s", err->message); | 888 | writeToLog((char*)"GST init failed: %s", err->message); |
889 | g_error_free(err); | 889 | g_error_free(err); |
890 | } | 890 | } |
891 | else | 891 | else |
892 | { | 892 | { |
893 | writeToLog("GST init failed for unspecified reason."); | 893 | writeToLog((char*)"GST init failed for unspecified reason."); |
894 | } | 894 | } |
895 | return false; | 895 | return false; |
896 | } | 896 | } |
@@ -903,7 +903,7 @@ MediaPluginGStreamer010::startup() | |||
903 | gst_slvideo_init_class(); | 903 | gst_slvideo_init_class(); |
904 | 904 | ||
905 | // List the plugins GStreamer can find | 905 | // List the plugins GStreamer can find |
906 | writeToLog("Found GStreamer plugins:"); | 906 | writeToLog((char*)"Found GStreamer plugins:"); |
907 | GList *list; | 907 | GList *list; |
908 | GstRegistry *registry = gst_registry_get_default(); | 908 | GstRegistry *registry = gst_registry_get_default(); |
909 | std::string loaded = "No"; | 909 | std::string loaded = "No"; |
@@ -913,7 +913,7 @@ MediaPluginGStreamer010::startup() | |||
913 | { | 913 | { |
914 | GstPlugin *list_plugin = (GstPlugin *)list->data; | 914 | GstPlugin *list_plugin = (GstPlugin *)list->data; |
915 | if (gst_plugin_is_loaded(list_plugin)) loaded = "Yes"; | 915 | if (gst_plugin_is_loaded(list_plugin)) loaded = "Yes"; |
916 | writeToLog("%s, loaded? %s", gst_plugin_get_name(list_plugin), loaded.c_str()); | 916 | writeToLog((char*)"%s, loaded? %s", gst_plugin_get_name(list_plugin), loaded.c_str()); |
917 | } | 917 | } |
918 | gst_plugin_list_free(list); | 918 | gst_plugin_list_free(list); |
919 | 919 | ||
@@ -960,11 +960,11 @@ void MediaPluginGStreamer010::set_gst_plugin_path() | |||
960 | 960 | ||
961 | if( imp_dir == "" ) | 961 | if( imp_dir == "" ) |
962 | { | 962 | { |
963 | writeToLog("Could not get application directory, not setting GST_PLUGIN_PATH."); | 963 | writeToLog((char*)"Could not get application directory, not setting GST_PLUGIN_PATH."); |
964 | return; | 964 | return; |
965 | } | 965 | } |
966 | 966 | ||
967 | writeToLog("Imprudence is installed at %s", imp_dir.c_str()); | 967 | writeToLog((char*)"Imprudence is installed at %s", imp_dir.c_str()); |
968 | 968 | ||
969 | // ":" on Mac and 'Nix, ";" on Windows | 969 | // ":" on Mac and 'Nix, ";" on Windows |
970 | std::string separator = G_SEARCHPATH_SEPARATOR_S; | 970 | std::string separator = G_SEARCHPATH_SEPARATOR_S; |
@@ -974,7 +974,7 @@ void MediaPluginGStreamer010::set_gst_plugin_path() | |||
974 | char *old_path = getenv("GST_PLUGIN_PATH"); | 974 | char *old_path = getenv("GST_PLUGIN_PATH"); |
975 | if(old_path == NULL) | 975 | if(old_path == NULL) |
976 | { | 976 | { |
977 | writeToLog("Did not find user-set GST_PLUGIN_PATH."); | 977 | writeToLog((char*)"Did not find user-set GST_PLUGIN_PATH."); |
978 | } | 978 | } |
979 | else | 979 | else |
980 | { | 980 | { |
@@ -1005,11 +1005,11 @@ void MediaPluginGStreamer010::set_gst_plugin_path() | |||
1005 | 1005 | ||
1006 | if( put_result == -1 ) | 1006 | if( put_result == -1 ) |
1007 | { | 1007 | { |
1008 | writeToLog("Setting GST_PLUGIN_PATH failed!"); | 1008 | writeToLog((char*)"Setting GST_PLUGIN_PATH failed!"); |
1009 | } | 1009 | } |
1010 | else | 1010 | else |
1011 | { | 1011 | { |
1012 | writeToLog("GST_PLUGIN_PATH set to %s", getenv("GST_PLUGIN_PATH")); | 1012 | writeToLog((char*)"GST_PLUGIN_PATH set to %s", getenv("GST_PLUGIN_PATH")); |
1013 | } | 1013 | } |
1014 | 1014 | ||
1015 | // Don't load system plugins. We only want to use ours, to avoid conflicts. | 1015 | // Don't load system plugins. We only want to use ours, to avoid conflicts. |
@@ -1021,7 +1021,7 @@ void MediaPluginGStreamer010::set_gst_plugin_path() | |||
1021 | 1021 | ||
1022 | if( put_result == -1 ) | 1022 | if( put_result == -1 ) |
1023 | { | 1023 | { |
1024 | writeToLog("Setting GST_PLUGIN_SYSTEM_PATH=\"\" failed!"); | 1024 | writeToLog((char*)"Setting GST_PLUGIN_SYSTEM_PATH=\"\" failed!"); |
1025 | } | 1025 | } |
1026 | 1026 | ||
1027 | #endif // LL_WINDOWS || LL_DARWIN | 1027 | #endif // LL_WINDOWS || LL_DARWIN |
@@ -1039,7 +1039,7 @@ MediaPluginGStreamer010::sizeChanged() | |||
1039 | { | 1039 | { |
1040 | mNaturalWidth = mCurrentWidth; | 1040 | mNaturalWidth = mCurrentWidth; |
1041 | mNaturalHeight = mCurrentHeight; | 1041 | mNaturalHeight = mCurrentHeight; |
1042 | writeToLog("Media NATURAL size better detected as %dx%d", | 1042 | writeToLog((char*)"Media NATURAL size better detected as %dx%d", |
1043 | mNaturalWidth, mNaturalHeight); | 1043 | mNaturalWidth, mNaturalHeight); |
1044 | } | 1044 | } |
1045 | 1045 | ||
@@ -1054,7 +1054,7 @@ MediaPluginGStreamer010::sizeChanged() | |||
1054 | message.setValue("name", mTextureSegmentName); | 1054 | message.setValue("name", mTextureSegmentName); |
1055 | message.setValueS32("width", mNaturalWidth); | 1055 | message.setValueS32("width", mNaturalWidth); |
1056 | message.setValueS32("height", mNaturalHeight); | 1056 | message.setValueS32("height", mNaturalHeight); |
1057 | writeToLog("<--- Sending size change request to application with name: '%s' - natural size is %d x %d", mTextureSegmentName.c_str(), mNaturalWidth, mNaturalHeight); | 1057 | writeToLog((char*)"<--- Sending size change request to application with name: '%s' - natural size is %d x %d", mTextureSegmentName.c_str(), mNaturalWidth, mNaturalHeight); |
1058 | sendMessage(message); | 1058 | sendMessage(message); |
1059 | } | 1059 | } |
1060 | } | 1060 | } |
@@ -1077,11 +1077,11 @@ MediaPluginGStreamer010::closedown() | |||
1077 | 1077 | ||
1078 | MediaPluginGStreamer010::~MediaPluginGStreamer010() | 1078 | MediaPluginGStreamer010::~MediaPluginGStreamer010() |
1079 | { | 1079 | { |
1080 | //writeToLog("MediaPluginGStreamer010 destructor"); | 1080 | //writeToLog((char*)"MediaPluginGStreamer010 destructor"); |
1081 | 1081 | ||
1082 | closedown(); | 1082 | closedown(); |
1083 | 1083 | ||
1084 | writeToLog("GStreamer010 closing down"); | 1084 | writeToLog((char*)"GStreamer010 closing down"); |
1085 | } | 1085 | } |
1086 | 1086 | ||
1087 | 1087 | ||
@@ -1125,11 +1125,11 @@ void MediaPluginGStreamer010::receiveMessage(const char *message_string) | |||
1125 | 1125 | ||
1126 | if ( load() ) | 1126 | if ( load() ) |
1127 | { | 1127 | { |
1128 | writeToLog("GStreamer010 media instance set up"); | 1128 | writeToLog((char*)"GStreamer010 media instance set up"); |
1129 | } | 1129 | } |
1130 | else | 1130 | else |
1131 | { | 1131 | { |
1132 | writeToLog("GStreamer010 media instance failed to set up"); | 1132 | writeToLog((char*)"GStreamer010 media instance failed to set up"); |
1133 | } | 1133 | } |
1134 | 1134 | ||
1135 | message.setValue("plugin_version", getVersion()); | 1135 | message.setValue("plugin_version", getVersion()); |
@@ -1156,7 +1156,7 @@ void MediaPluginGStreamer010::receiveMessage(const char *message_string) | |||
1156 | std::string name = message_in.getValue("name"); | 1156 | std::string name = message_in.getValue("name"); |
1157 | 1157 | ||
1158 | std::ostringstream str; | 1158 | std::ostringstream str; |
1159 | writeToLog("MediaPluginGStreamer010::receiveMessage: shared memory added, name: %s, size: %d, address: %p", name.c_str(), int(info.mSize), info.mAddress); | 1159 | writeToLog((char*)"MediaPluginGStreamer010::receiveMessage: shared memory added, name: %s, size: %d, address: %p", name.c_str(), int(info.mSize), info.mAddress); |
1160 | 1160 | ||
1161 | mSharedSegments.insert(SharedSegmentMap::value_type(name, info)); | 1161 | mSharedSegments.insert(SharedSegmentMap::value_type(name, info)); |
1162 | } | 1162 | } |
@@ -1164,7 +1164,7 @@ void MediaPluginGStreamer010::receiveMessage(const char *message_string) | |||
1164 | { | 1164 | { |
1165 | std::string name = message_in.getValue("name"); | 1165 | std::string name = message_in.getValue("name"); |
1166 | 1166 | ||
1167 | writeToLog("MediaPluginGStreamer010::receiveMessage: shared memory remove, name = %s", name.c_str()); | 1167 | writeToLog((char*)"MediaPluginGStreamer010::receiveMessage: shared memory remove, name = %s", name.c_str()); |
1168 | 1168 | ||
1169 | SharedSegmentMap::iterator iter = mSharedSegments.find(name); | 1169 | SharedSegmentMap::iterator iter = mSharedSegments.find(name); |
1170 | if(iter != mSharedSegments.end()) | 1170 | if(iter != mSharedSegments.end()) |
@@ -1182,7 +1182,7 @@ void MediaPluginGStreamer010::receiveMessage(const char *message_string) | |||
1182 | } | 1182 | } |
1183 | else | 1183 | else |
1184 | { | 1184 | { |
1185 | writeToLog("MediaPluginGStreamer010::receiveMessage: unknown shared memory region!"); | 1185 | writeToLog((char*)"MediaPluginGStreamer010::receiveMessage: unknown shared memory region!"); |
1186 | } | 1186 | } |
1187 | 1187 | ||
1188 | // Send the response so it can be cleaned up. | 1188 | // Send the response so it can be cleaned up. |
@@ -1193,7 +1193,7 @@ void MediaPluginGStreamer010::receiveMessage(const char *message_string) | |||
1193 | else | 1193 | else |
1194 | { | 1194 | { |
1195 | std::ostringstream str; | 1195 | std::ostringstream str; |
1196 | writeToLog("MediaPluginGStreamer010::receiveMessage: unknown base message: %s", message_name.c_str()); | 1196 | writeToLog((char*)"MediaPluginGStreamer010::receiveMessage: unknown base message: %s", message_name.c_str()); |
1197 | } | 1197 | } |
1198 | } | 1198 | } |
1199 | else if(message_class == LLPLUGIN_MESSAGE_CLASS_MEDIA) | 1199 | else if(message_class == LLPLUGIN_MESSAGE_CLASS_MEDIA) |
@@ -1236,7 +1236,7 @@ void MediaPluginGStreamer010::receiveMessage(const char *message_string) | |||
1236 | S32 texture_height = message_in.getValueS32("texture_height"); | 1236 | S32 texture_height = message_in.getValueS32("texture_height"); |
1237 | 1237 | ||
1238 | std::ostringstream str; | 1238 | std::ostringstream str; |
1239 | writeToLog("---->Got size change instruction from application with shm name: %s - size is %d x %d", name.c_str(), width, height); | 1239 | writeToLog((char*)"---->Got size change instruction from application with shm name: %s - size is %d x %d", name.c_str(), width, height); |
1240 | 1240 | ||
1241 | LLPluginMessage message(LLPLUGIN_MESSAGE_CLASS_MEDIA, "size_change_response"); | 1241 | LLPluginMessage message(LLPLUGIN_MESSAGE_CLASS_MEDIA, "size_change_response"); |
1242 | message.setValue("name", name); | 1242 | message.setValue("name", name); |
@@ -1252,8 +1252,8 @@ void MediaPluginGStreamer010::receiveMessage(const char *message_string) | |||
1252 | SharedSegmentMap::iterator iter = mSharedSegments.find(name); | 1252 | SharedSegmentMap::iterator iter = mSharedSegments.find(name); |
1253 | if(iter != mSharedSegments.end()) | 1253 | if(iter != mSharedSegments.end()) |
1254 | { | 1254 | { |
1255 | writeToLog("*** Got size change with matching shm, new size is %d x %d", width, height); | 1255 | writeToLog((char*)"*** Got size change with matching shm, new size is %d x %d", width, height); |
1256 | writeToLog("*** Got size change with matching shm, texture size size is %d x %d", texture_width, texture_height); | 1256 | writeToLog((char*)"*** Got size change with matching shm, texture size size is %d x %d", texture_width, texture_height); |
1257 | 1257 | ||
1258 | mPixels = (unsigned char*)iter->second.mAddress; | 1258 | mPixels = (unsigned char*)iter->second.mAddress; |
1259 | mTextureSegmentName = name; | 1259 | mTextureSegmentName = name; |
@@ -1263,7 +1263,7 @@ void MediaPluginGStreamer010::receiveMessage(const char *message_string) | |||
1263 | if (texture_width > 1 || | 1263 | if (texture_width > 1 || |
1264 | texture_height > 1) // not a dummy size from the app, a real explicit forced size | 1264 | texture_height > 1) // not a dummy size from the app, a real explicit forced size |
1265 | { | 1265 | { |
1266 | writeToLog("**** = REAL RESIZE REQUEST FROM APP"); | 1266 | writeToLog((char*)"**** = REAL RESIZE REQUEST FROM APP"); |
1267 | 1267 | ||
1268 | GST_OBJECT_LOCK(mVideoSink); | 1268 | GST_OBJECT_LOCK(mVideoSink); |
1269 | mVideoSink->resize_forced_always = true; | 1269 | mVideoSink->resize_forced_always = true; |
@@ -1345,7 +1345,7 @@ void MediaPluginGStreamer010::receiveMessage(const char *message_string) | |||
1345 | } | 1345 | } |
1346 | else | 1346 | else |
1347 | { | 1347 | { |
1348 | writeToLog("MediaPluginGStreamer010::receiveMessage: unknown message class: %s", message_class.c_str()); | 1348 | writeToLog((char*)"MediaPluginGStreamer010::receiveMessage: unknown message class: %s", message_class.c_str()); |
1349 | } | 1349 | } |
1350 | } | 1350 | } |
1351 | } | 1351 | } |
diff --git a/linden/indra/newview/app_settings/logcontrol.xml b/linden/indra/newview/app_settings/logcontrol.xml index 2c6c6a4..51bb456 100644 --- a/linden/indra/newview/app_settings/logcontrol.xml +++ b/linden/indra/newview/app_settings/logcontrol.xml | |||
@@ -57,7 +57,7 @@ | |||
57 | <!--<string>Inventory</string>--> | 57 | <!--<string>Inventory</string>--> |
58 | <!--<string>HUDEffect</string>--> | 58 | <!--<string>HUDEffect</string>--> |
59 | <!--<string>MarkerFile</string>--> | 59 | <!--<string>MarkerFile</string>--> |
60 | <!--<string>MediaImpl</string>--> | 60 | <!--<string>Media</string>--> |
61 | <!--<string>MediaInfo</string>--> | 61 | <!--<string>MediaInfo</string>--> |
62 | <!--<string>MediaCallback</string>--> | 62 | <!--<string>MediaCallback</string>--> |
63 | <!--<string>MediaBuffering</string>--> | 63 | <!--<string>MediaBuffering</string>--> |
@@ -65,6 +65,8 @@ | |||
65 | <!--<string>MediaState</string>--> | 65 | <!--<string>MediaState</string>--> |
66 | 66 | ||
67 | <!--<string>Messaging</string>--> | 67 | <!--<string>Messaging</string>--> |
68 | |||
69 | <string>NewsBar</string> | ||
68 | <!--<string>Notifications</string>--> | 70 | <!--<string>Notifications</string>--> |
69 | 71 | ||
70 | <!--<string>Plugin</string>--> | 72 | <!--<string>Plugin</string>--> |
diff --git a/linden/indra/newview/app_settings/settings.xml b/linden/indra/newview/app_settings/settings.xml index 17d4c3c..fbb51e8 100644 --- a/linden/indra/newview/app_settings/settings.xml +++ b/linden/indra/newview/app_settings/settings.xml | |||
@@ -37,7 +37,17 @@ | |||
37 | <key>Value</key> | 37 | <key>Value</key> |
38 | <integer>0</integer> | 38 | <integer>0</integer> |
39 | </map> | 39 | </map> |
40 | 40 | <key>VoiceModule</key> | |
41 | <map> | ||
42 | <key>Comment</key> | ||
43 | <string>Executable file that runs voice. Platform specific parts (like .exe on windows) are added automatically.</string> | ||
44 | <key>Persist</key> | ||
45 | <integer>1</integer> | ||
46 | <key>Type</key> | ||
47 | <string>String</string> | ||
48 | <key>Value</key> | ||
49 | <string>SLVoice</string> | ||
50 | </map> | ||
41 | <!-- Imprudence-specific settings --> | 51 | <!-- Imprudence-specific settings --> |
42 | 52 | ||
43 | <key>AllowEditingOfTrees</key> | 53 | <key>AllowEditingOfTrees</key> |
diff --git a/linden/indra/newview/hippolimits.cpp b/linden/indra/newview/hippolimits.cpp index d4c8efb..bb2e805 100644 --- a/linden/indra/newview/hippolimits.cpp +++ b/linden/indra/newview/hippolimits.cpp | |||
@@ -22,7 +22,8 @@ HippoLimits::HippoLimits() | |||
22 | mMinPrimScale(0.001f), | 22 | mMinPrimScale(0.001f), |
23 | mMaxPrimScale(256.0f), | 23 | mMaxPrimScale(256.0f), |
24 | mMaxLinkedPrims(-1), | 24 | mMaxLinkedPrims(-1), |
25 | mMaxDragDistance(0.f) | 25 | mMaxDragDistance(0.f), |
26 | mVoiceConnector("SLVoice") | ||
26 | { | 27 | { |
27 | setLimits(); | 28 | setLimits(); |
28 | } | 29 | } |
@@ -68,6 +69,7 @@ void HippoLimits::setOpenSimLimits() | |||
68 | mEnableTeenMode = FALSE; | 69 | mEnableTeenMode = FALSE; |
69 | mEnforceMaxBuild = FALSE; | 70 | mEnforceMaxBuild = FALSE; |
70 | mRenderWater = TRUE; | 71 | mRenderWater = TRUE; |
72 | mVoiceConnector = "SLVoice"; | ||
71 | 73 | ||
72 | if (gHippoGridManager->getConnectedGrid()->isRenderCompat()) { | 74 | if (gHippoGridManager->getConnectedGrid()->isRenderCompat()) { |
73 | llinfos << "Using rendering compatible OpenSim limits" << llendl; | 75 | llinfos << "Using rendering compatible OpenSim limits" << llendl; |
@@ -110,6 +112,7 @@ void HippoLimits::setSecondLifeLimits() | |||
110 | mEnableTeenMode = FALSE; | 112 | mEnableTeenMode = FALSE; |
111 | mEnforceMaxBuild = FALSE; | 113 | mEnforceMaxBuild = FALSE; |
112 | mRenderWater = TRUE; | 114 | mRenderWater = TRUE; |
115 | mVoiceConnector = "SLVoice"; | ||
113 | } | 116 | } |
114 | 117 | ||
115 | F32 HippoLimits::getMaxPrimScale() const | 118 | F32 HippoLimits::getMaxPrimScale() const |
diff --git a/linden/indra/newview/hippolimits.h b/linden/indra/newview/hippolimits.h index 7792a2c..9d6b2f6 100644 --- a/linden/indra/newview/hippolimits.h +++ b/linden/indra/newview/hippolimits.h | |||
@@ -14,7 +14,7 @@ public: | |||
14 | const S32& getMaxLinkedPrims() const { return mMaxLinkedPrims; } | 14 | const S32& getMaxLinkedPrims() const { return mMaxLinkedPrims; } |
15 | const S32& getMaxPhysLinkedPrims() const { return mMaxPhysLinkedPrims; } | 15 | const S32& getMaxPhysLinkedPrims() const { return mMaxPhysLinkedPrims; } |
16 | const F32& getMaxInventoryItemsTransfer() const { return mMaxInventoryItemsTransfer; } | 16 | const F32& getMaxInventoryItemsTransfer() const { return mMaxInventoryItemsTransfer; } |
17 | 17 | const std::string& getVoiceConnector() const { return mVoiceConnector; } | |
18 | 18 | ||
19 | // Returns the max prim size we can use on a grid | 19 | // Returns the max prim size we can use on a grid |
20 | F32 getMinPrimScale() const; | 20 | F32 getMinPrimScale() const; |
@@ -59,6 +59,7 @@ public: | |||
59 | BOOL mEnableTeenMode; | 59 | BOOL mEnableTeenMode; |
60 | BOOL mEnforceMaxBuild; | 60 | BOOL mEnforceMaxBuild; |
61 | BOOL mRenderWater; | 61 | BOOL mRenderWater; |
62 | std::string mVoiceConnector; | ||
62 | 63 | ||
63 | private: | 64 | private: |
64 | void setOpenSimLimits(); | 65 | void setOpenSimLimits(); |
diff --git a/linden/indra/newview/kowopenregionsettings.cpp b/linden/indra/newview/kowopenregionsettings.cpp index 8aac87c..ef14d2a 100644 --- a/linden/indra/newview/kowopenregionsettings.cpp +++ b/linden/indra/newview/kowopenregionsettings.cpp | |||
@@ -36,6 +36,7 @@ | |||
36 | #include "llviewerobject.h" | 36 | #include "llviewerobject.h" |
37 | #include "llfloaterregioninfo.h" | 37 | #include "llfloaterregioninfo.h" |
38 | #include "llfloaterworldmap.h" | 38 | #include "llfloaterworldmap.h" |
39 | #include "llvoiceclient.h" | ||
39 | 40 | ||
40 | //DEBUG includes | 41 | //DEBUG includes |
41 | //#include "llsdserialize.h" //LLSDNotationStreamer - for dumping LLSD to string | 42 | //#include "llsdserialize.h" //LLSDNotationStreamer - for dumping LLSD to string |
@@ -200,6 +201,12 @@ class OpenRegionInfoUpdate : public LLHTTPNode | |||
200 | { | 201 | { |
201 | gHippoLimits->mAllowParcelWindLight = body["AllowParcelWindLight"].asInteger() == 1; | 202 | gHippoLimits->mAllowParcelWindLight = body["AllowParcelWindLight"].asInteger() == 1; |
202 | } | 203 | } |
204 | if ( body.has("Voice") ) | ||
205 | { | ||
206 | gSavedSettings.setString("VoiceModule", body["Voice"].asString()); | ||
207 | //gVoiceClient->close(); | ||
208 | //gVoiceClient->start(); | ||
209 | } | ||
203 | 210 | ||
204 | if (limitschanged) | 211 | if (limitschanged) |
205 | gFloaterTools->updateToolsSizeLimits(); | 212 | gFloaterTools->updateToolsSizeLimits(); |
diff --git a/linden/indra/newview/llfloaterchat.cpp b/linden/indra/newview/llfloaterchat.cpp index e9ea14b..79dddaa 100644 --- a/linden/indra/newview/llfloaterchat.cpp +++ b/linden/indra/newview/llfloaterchat.cpp | |||
@@ -73,7 +73,6 @@ | |||
73 | #include "lllogchat.h" | 73 | #include "lllogchat.h" |
74 | #include "lltexteditor.h" | 74 | #include "lltexteditor.h" |
75 | #include "lltextparser.h" | 75 | #include "lltextparser.h" |
76 | #include "llfloaterhtml.h" | ||
77 | #include "llweb.h" | 76 | #include "llweb.h" |
78 | #include "llstylemap.h" | 77 | #include "llstylemap.h" |
79 | #include "llviewermenu.h" | 78 | #include "llviewermenu.h" |
diff --git a/linden/indra/newview/llfloaterhtml.cpp b/linden/indra/newview/llfloaterhtml.cpp deleted file mode 100644 index 5822ed5..0000000 --- a/linden/indra/newview/llfloaterhtml.cpp +++ /dev/null | |||
@@ -1,253 +0,0 @@ | |||
1 | /** | ||
2 | * @file llfloaterhtml.cpp | ||
3 | * @brief In-world HTML dialog | ||
4 | * | ||
5 | * $LicenseInfo:firstyear=2005&license=viewergpl$ | ||
6 | * | ||
7 | * Copyright (c) 2005-2009, Linden Research, Inc. | ||
8 | * | ||
9 | * Second Life Viewer Source Code | ||
10 | * The source code in this file ("Source Code") is provided by Linden Lab | ||
11 | * to you under the terms of the GNU General Public License, version 2.0 | ||
12 | * ("GPL"), unless you have obtained a separate licensing agreement | ||
13 | * ("Other License"), formally executed by you and Linden Lab. Terms of | ||
14 | * the GPL can be found in doc/GPL-license.txt in this distribution, or | ||
15 | * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 | ||
16 | * | ||
17 | * There are special exceptions to the terms and conditions of the GPL as | ||
18 | * it is applied to this Source Code. View the full text of the exception | ||
19 | * in the file doc/FLOSS-exception.txt in this software distribution, or | ||
20 | * online at | ||
21 | * http://secondlifegrid.net/programs/open_source/licensing/flossexception | ||
22 | * | ||
23 | * By copying, modifying or distributing this software, you acknowledge | ||
24 | * that you have read and understood your obligations described above, | ||
25 | * and agree to abide by those obligations. | ||
26 | * | ||
27 | * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO | ||
28 | * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, | ||
29 | * COMPLETENESS OR PERFORMANCE. | ||
30 | * $/LicenseInfo$ | ||
31 | */ | ||
32 | |||
33 | #include "llviewerprecompiledheaders.h" | ||
34 | |||
35 | #include "llfloaterhtml.h" | ||
36 | |||
37 | // viewer includes | ||
38 | #include "lluictrlfactory.h" | ||
39 | #include "llviewercontrol.h" | ||
40 | #include "lllineeditor.h" | ||
41 | #include "llviewerwindow.h" | ||
42 | #include "llweb.h" | ||
43 | |||
44 | |||
45 | LLFloaterHtml* LLFloaterHtml::sInstance = 0; | ||
46 | |||
47 | //////////////////////////////////////////////////////////////////////////////// | ||
48 | // | ||
49 | LLFloaterHtml* LLFloaterHtml::getInstance() | ||
50 | { | ||
51 | if ( ! sInstance ) | ||
52 | sInstance = new LLFloaterHtml(); | ||
53 | |||
54 | return sInstance; | ||
55 | } | ||
56 | |||
57 | //////////////////////////////////////////////////////////////////////////////// | ||
58 | // | ||
59 | LLFloaterHtml::LLFloaterHtml() | ||
60 | : LLFloater( std::string("HTML Floater") ) | ||
61 | |||
62 | , | ||
63 | mWebBrowser( 0 ) | ||
64 | { | ||
65 | LLUICtrlFactory::getInstance()->buildFloater( this, "floater_html.xml" ); | ||
66 | |||
67 | childSetAction("back_btn", onClickBack, this); | ||
68 | childSetAction("home_btn", onClickHome, this); | ||
69 | childSetAction("forward_btn", onClickForward, this); | ||
70 | childSetAction("close_btn", onClickClose, this); | ||
71 | childSetCommitCallback("url_edit", onCommitUrlEdit, this ); | ||
72 | childSetAction("go_btn", onClickGo, this ); | ||
73 | |||
74 | // reposition floater from saved settings | ||
75 | LLRect rect = gSavedSettings.getRect( "FloaterHtmlRect" ); | ||
76 | reshape( rect.getWidth(), rect.getHeight(), FALSE ); | ||
77 | setRect( rect ); | ||
78 | |||
79 | mWebBrowser = getChild<LLWebBrowserCtrl>("html_floater_browser" ); | ||
80 | if ( mWebBrowser ) | ||
81 | { | ||
82 | // open links in internal browser | ||
83 | mWebBrowser->setOpenInExternalBrowser( false ); | ||
84 | } | ||
85 | } | ||
86 | |||
87 | //////////////////////////////////////////////////////////////////////////////// | ||
88 | // | ||
89 | LLFloaterHtml::~LLFloaterHtml() | ||
90 | { | ||
91 | // save position of floater | ||
92 | gSavedSettings.setRect( "FloaterHtmlRect", getRect() ); | ||
93 | |||
94 | sInstance = 0; | ||
95 | } | ||
96 | |||
97 | //////////////////////////////////////////////////////////////////////////////// | ||
98 | // virtual | ||
99 | void LLFloaterHtml::draw() | ||
100 | { | ||
101 | // enable/disable buttons depending on state | ||
102 | if ( mWebBrowser ) | ||
103 | { | ||
104 | bool enable_back = mWebBrowser->canNavigateBack(); | ||
105 | childSetEnabled( "back_btn", enable_back ); | ||
106 | |||
107 | bool enable_forward = mWebBrowser->canNavigateForward(); | ||
108 | childSetEnabled( "forward_btn", enable_forward ); | ||
109 | }; | ||
110 | |||
111 | LLFloater::draw(); | ||
112 | } | ||
113 | |||
114 | //////////////////////////////////////////////////////////////////////////////// | ||
115 | // | ||
116 | void LLFloaterHtml::show( std::string content_id, bool open_link_external, bool open_app_slurls ) | ||
117 | { | ||
118 | // calculate the XML labels we'll need (if only XML folders worked) | ||
119 | std::string title_str = content_id + "_title"; | ||
120 | std::string url_str = content_id + "_url"; | ||
121 | |||
122 | std::string title = getString( title_str ); | ||
123 | std::string url = getString( url_str ); | ||
124 | |||
125 | show( url, title, open_link_external, open_app_slurls ); | ||
126 | } | ||
127 | |||
128 | //////////////////////////////////////////////////////////////////////////////// | ||
129 | // | ||
130 | void LLFloaterHtml::show( std::string start_url, std::string title, bool open_link_external, bool trusted_browser ) | ||
131 | { | ||
132 | // set the title | ||
133 | setTitle( title ); | ||
134 | |||
135 | // navigate to the URL | ||
136 | if ( mWebBrowser ) | ||
137 | { | ||
138 | mWebBrowser->setTrusted( trusted_browser ); | ||
139 | mWebBrowser->setOpenInExternalBrowser( open_link_external ); | ||
140 | mWebBrowser->navigateTo( start_url ); | ||
141 | } | ||
142 | |||
143 | // make floater appear | ||
144 | setVisibleAndFrontmost(); | ||
145 | } | ||
146 | |||
147 | //////////////////////////////////////////////////////////////////////////////// | ||
148 | // | ||
149 | std::string LLFloaterHtml::getSupportUrl() | ||
150 | { | ||
151 | return getString("support_page_url"); | ||
152 | } | ||
153 | |||
154 | //////////////////////////////////////////////////////////////////////////////// | ||
155 | // | ||
156 | void LLFloaterHtml::onClose( bool app_quitting ) | ||
157 | { | ||
158 | setVisible( false ); | ||
159 | // HACK for fast XML iteration replace with: | ||
160 | // destroy(); | ||
161 | } | ||
162 | |||
163 | //////////////////////////////////////////////////////////////////////////////// | ||
164 | // | ||
165 | void LLFloaterHtml::onClickClose( void* data ) | ||
166 | { | ||
167 | LLFloaterHtml* self = ( LLFloaterHtml* )data; | ||
168 | self->close(); | ||
169 | } | ||
170 | |||
171 | //////////////////////////////////////////////////////////////////////////////// | ||
172 | // static | ||
173 | void LLFloaterHtml::onClickBack( void* data ) | ||
174 | { | ||
175 | LLFloaterHtml* self = ( LLFloaterHtml* )data; | ||
176 | if ( self ) | ||
177 | { | ||
178 | if ( self->mWebBrowser ) | ||
179 | { | ||
180 | self->mWebBrowser->navigateBack(); | ||
181 | }; | ||
182 | }; | ||
183 | } | ||
184 | |||
185 | //////////////////////////////////////////////////////////////////////////////// | ||
186 | // | ||
187 | void LLFloaterHtml::onClickHome( void* data ) | ||
188 | { | ||
189 | LLFloaterHtml* self = ( LLFloaterHtml* )data; | ||
190 | if ( self ) | ||
191 | { | ||
192 | if ( self->mWebBrowser ) | ||
193 | { | ||
194 | std::string home_url = self->getString("home_page_url"); | ||
195 | if ( home_url.length() > 4 ) | ||
196 | { | ||
197 | self->mWebBrowser->navigateTo( home_url ); | ||
198 | } | ||
199 | else | ||
200 | { | ||
201 | llwarns << "Invalid home page specified for HTML floater - navigating to default" << llendl; | ||
202 | self->mWebBrowser->navigateTo( "http://secondlife.com" ); | ||
203 | } | ||
204 | }; | ||
205 | }; | ||
206 | } | ||
207 | |||
208 | //////////////////////////////////////////////////////////////////////////////// | ||
209 | // static | ||
210 | void LLFloaterHtml::onClickForward( void* data ) | ||
211 | { | ||
212 | LLFloaterHtml* self = ( LLFloaterHtml* )data; | ||
213 | if ( self ) | ||
214 | { | ||
215 | if ( self->mWebBrowser ) | ||
216 | { | ||
217 | self->mWebBrowser->navigateForward(); | ||
218 | }; | ||
219 | }; | ||
220 | } | ||
221 | |||
222 | //////////////////////////////////////////////////////////////////////////////// | ||
223 | // static | ||
224 | void LLFloaterHtml::onCommitUrlEdit(LLUICtrl* ctrl, void* user_data) | ||
225 | { | ||
226 | LLFloaterHtml* self = (LLFloaterHtml*)user_data; | ||
227 | |||
228 | LLLineEditor* editor = (LLLineEditor*)ctrl; | ||
229 | std::string url = editor->getText(); | ||
230 | |||
231 | if ( self->mWebBrowser ) | ||
232 | { | ||
233 | self->mWebBrowser->navigateTo( url ); | ||
234 | }; | ||
235 | } | ||
236 | |||
237 | //////////////////////////////////////////////////////////////////////////////// | ||
238 | // static | ||
239 | void LLFloaterHtml::onClickGo( void* data ) | ||
240 | { | ||
241 | LLFloaterHtml* self = ( LLFloaterHtml* )data; | ||
242 | if ( self ) | ||
243 | { | ||
244 | std::string url = self->childGetValue( "url_edit" ).asString(); | ||
245 | if ( url.length() ) | ||
246 | { | ||
247 | if ( self->mWebBrowser ) | ||
248 | { | ||
249 | self->mWebBrowser->navigateTo( url ); | ||
250 | } | ||
251 | } | ||
252 | } | ||
253 | } | ||
diff --git a/linden/indra/newview/llfloaterhtml.h b/linden/indra/newview/llfloaterhtml.h deleted file mode 100644 index 4383472..0000000 --- a/linden/indra/newview/llfloaterhtml.h +++ /dev/null | |||
@@ -1,77 +0,0 @@ | |||
1 | /** | ||
2 | * @file llfloaterhtml.h | ||
3 | * @author James Cook | ||
4 | * @brief In-world HTML dialog | ||
5 | * | ||
6 | * $LicenseInfo:firstyear=2005&license=viewergpl$ | ||
7 | * | ||
8 | * Copyright (c) 2005-2009, Linden Research, Inc. | ||
9 | * | ||
10 | * Second Life Viewer Source Code | ||
11 | * The source code in this file ("Source Code") is provided by Linden Lab | ||
12 | * to you under the terms of the GNU General Public License, version 2.0 | ||
13 | * ("GPL"), unless you have obtained a separate licensing agreement | ||
14 | * ("Other License"), formally executed by you and Linden Lab. Terms of | ||
15 | * the GPL can be found in doc/GPL-license.txt in this distribution, or | ||
16 | * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 | ||
17 | * | ||
18 | * There are special exceptions to the terms and conditions of the GPL as | ||
19 | * it is applied to this Source Code. View the full text of the exception | ||
20 | * in the file doc/FLOSS-exception.txt in this software distribution, or | ||
21 | * online at | ||
22 | * http://secondlifegrid.net/programs/open_source/licensing/flossexception | ||
23 | * | ||
24 | * By copying, modifying or distributing this software, you acknowledge | ||
25 | * that you have read and understood your obligations described above, | ||
26 | * and agree to abide by those obligations. | ||
27 | * | ||
28 | * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO | ||
29 | * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, | ||
30 | * COMPLETENESS OR PERFORMANCE. | ||
31 | * $/LicenseInfo$ | ||
32 | */ | ||
33 | |||
34 | #ifndef LL_LLFLOATERHTML_H | ||
35 | #define LL_LLFLOATERHTML_H | ||
36 | |||
37 | #include "llfloater.h" | ||
38 | #include "llhtmlhelp.h" | ||
39 | |||
40 | class LLWebBrowserCtrl; | ||
41 | |||
42 | class LLFloaterHtml : | ||
43 | public LLFloater | ||
44 | { | ||
45 | public: | ||
46 | static LLFloaterHtml* getInstance(); | ||
47 | virtual ~LLFloaterHtml(); | ||
48 | |||
49 | virtual void draw(); | ||
50 | virtual void onClose( bool app_quitting ); | ||
51 | |||
52 | // Pass string like "in-world_help" or "additional help" | ||
53 | void show( std::string content_id, bool open_link_external, bool trusted_browser ); | ||
54 | |||
55 | // Pass raw URL and window title | ||
56 | // Can be set to handle secondlife:///app/ URLs, but this should | ||
57 | // usually be false. | ||
58 | void show( std::string start_url, std::string title, bool open_link_external, bool trusted_browser ); | ||
59 | |||
60 | std::string getSupportUrl(); | ||
61 | |||
62 | static void onClickClose( void* data ); | ||
63 | static void onClickBack( void* data ); | ||
64 | static void onClickHome( void* data ); | ||
65 | static void onClickForward( void* data ); | ||
66 | static void onCommitUrlEdit(LLUICtrl* ctrl, void* user_data); | ||
67 | static void onClickGo( void* data ); | ||
68 | |||
69 | private: | ||
70 | LLFloaterHtml(); | ||
71 | |||
72 | LLWebBrowserCtrl* mWebBrowser; | ||
73 | static LLFloaterHtml* sInstance; | ||
74 | LLButton* mCloseButton; | ||
75 | }; | ||
76 | |||
77 | #endif | ||
diff --git a/linden/indra/newview/llfloatermediabrowser.cpp b/linden/indra/newview/llfloatermediabrowser.cpp index d658a11..a78c9d1 100644 --- a/linden/indra/newview/llfloatermediabrowser.cpp +++ b/linden/indra/newview/llfloatermediabrowser.cpp | |||
@@ -1,6 +1,6 @@ | |||
1 | /** | 1 | /** |
2 | * @file llfloaterhtmlhelp.cpp | 2 | * @file llmediabrowser.cpp |
3 | * @brief HTML Help floater - uses embedded web browser control | 3 | * @brief embedded web browser |
4 | * | 4 | * |
5 | * $LicenseInfo:firstyear=2006&license=viewergpl$ | 5 | * $LicenseInfo:firstyear=2006&license=viewergpl$ |
6 | * | 6 | * |
@@ -33,7 +33,6 @@ | |||
33 | #include "llviewerprecompiledheaders.h" | 33 | #include "llviewerprecompiledheaders.h" |
34 | 34 | ||
35 | #include "llfloatermediabrowser.h" | 35 | #include "llfloatermediabrowser.h" |
36 | #include "llfloaterhtml.h" | ||
37 | 36 | ||
38 | #include "llchat.h" | 37 | #include "llchat.h" |
39 | #include "llfloaterchat.h" | 38 | #include "llfloaterchat.h" |
diff --git a/linden/indra/newview/llmediactrl.cpp b/linden/indra/newview/llmediactrl.cpp index 8b60326..8b10fa3 100644 --- a/linden/indra/newview/llmediactrl.cpp +++ b/linden/indra/newview/llmediactrl.cpp | |||
@@ -36,7 +36,7 @@ | |||
36 | #include "llmediactrl.h" | 36 | #include "llmediactrl.h" |
37 | 37 | ||
38 | // viewer includes | 38 | // viewer includes |
39 | #include "llfloaterhtml.h" | 39 | #include "llfloatermediabrowser.h" |
40 | #include "llfloaterworldmap.h" | 40 | #include "llfloaterworldmap.h" |
41 | #include "lluictrlfactory.h" | 41 | #include "lluictrlfactory.h" |
42 | #include "llurldispatcher.h" | 42 | #include "llurldispatcher.h" |
@@ -746,7 +746,7 @@ void LLMediaCtrl::handleMediaEvent(LLPluginClassMedia* self, EMediaEvent event) | |||
746 | 746 | ||
747 | case MEDIA_EVENT_CURSOR_CHANGED: | 747 | case MEDIA_EVENT_CURSOR_CHANGED: |
748 | { | 748 | { |
749 | LL_INFOS("Media") << "Media event: MEDIA_EVENT_CURSOR_CHANGED, new cursor is " << self->getCursorName() << LL_ENDL; | 749 | LL_DEBUGS("MediaEventCursor") << "Media event: MEDIA_EVENT_CURSOR_CHANGED, new cursor is " << self->getCursorName() << LL_ENDL; |
750 | 750 | ||
751 | std::string cursor = self->getCursorName(); | 751 | std::string cursor = self->getCursorName(); |
752 | 752 | ||
@@ -865,6 +865,7 @@ void LLMediaCtrl::onClickLinkHref( LLPluginClassMedia* self ) | |||
865 | const std::string protocol2( "https://" ); | 865 | const std::string protocol2( "https://" ); |
866 | if( mOpenLinksInExternalBrowser ) | 866 | if( mOpenLinksInExternalBrowser ) |
867 | { | 867 | { |
868 | LL_DEBUGS("Media") << "OpenLinksInExternalBrowser" << LL_ENDL; | ||
868 | if ( !url.empty() ) | 869 | if ( !url.empty() ) |
869 | { | 870 | { |
870 | if ( LLStringUtil::compareInsensitive( url.substr( 0, protocol1.length() ), protocol1 ) == 0 || | 871 | if ( LLStringUtil::compareInsensitive( url.substr( 0, protocol1.length() ), protocol1 ) == 0 || |
@@ -877,6 +878,7 @@ void LLMediaCtrl::onClickLinkHref( LLPluginClassMedia* self ) | |||
877 | else | 878 | else |
878 | if( mOpenLinksInInternalBrowser ) | 879 | if( mOpenLinksInInternalBrowser ) |
879 | { | 880 | { |
881 | LL_DEBUGS("Media") << "OpenLinksInInternalBrowser" << LL_ENDL; | ||
880 | if ( !url.empty() ) | 882 | if ( !url.empty() ) |
881 | { | 883 | { |
882 | if ( LLStringUtil::compareInsensitive( url.substr( 0, protocol1.length() ), protocol1 ) == 0 || | 884 | if ( LLStringUtil::compareInsensitive( url.substr( 0, protocol1.length() ), protocol1 ) == 0 || |
@@ -891,6 +893,8 @@ void LLMediaCtrl::onClickLinkHref( LLPluginClassMedia* self ) | |||
891 | // "Second Life Browser", | 893 | // "Second Life Browser", |
892 | // open_links_externally, | 894 | // open_links_externally, |
893 | // mTrusted); | 895 | // mTrusted); |
896 | |||
897 | LLFloaterMediaBrowser::getInstance()->openMedia(url); | ||
894 | } | 898 | } |
895 | } | 899 | } |
896 | } | 900 | } |
diff --git a/linden/indra/newview/llpanellogin.cpp b/linden/indra/newview/llpanellogin.cpp index 4fe0624..0b91091 100644 --- a/linden/indra/newview/llpanellogin.cpp +++ b/linden/indra/newview/llpanellogin.cpp | |||
@@ -297,7 +297,7 @@ LLPanelLogin::LLPanelLogin(const LLRect &rect, | |||
297 | 297 | ||
298 | // don't make it a tab stop until SL-27594 is fixed | 298 | // don't make it a tab stop until SL-27594 is fixed |
299 | web_browser->setTabStop(FALSE); | 299 | web_browser->setTabStop(FALSE); |
300 | // web_browser->navigateToLocalPage( "loading", "loading.html" ); | 300 | web_browser->navigateToLocalPage( "loading", "loading.html" ); |
301 | 301 | ||
302 | // make links open in external browser | 302 | // make links open in external browser |
303 | web_browser->setOpenInExternalBrowser( true ); | 303 | web_browser->setOpenInExternalBrowser( true ); |
@@ -338,16 +338,6 @@ void LLPanelLogin::setSiteIsAlive( bool alive ) | |||
338 | else | 338 | else |
339 | // the site is not available (missing page, server down, other badness) | 339 | // the site is not available (missing page, server down, other badness) |
340 | { | 340 | { |
341 | #if !USE_VIEWER_AUTH | ||
342 | if ( web_browser ) | ||
343 | { | ||
344 | // hide browser control (revealing default one) | ||
345 | web_browser->setVisible( FALSE ); | ||
346 | |||
347 | // mark as unavailable | ||
348 | mHtmlAvailable = FALSE; | ||
349 | } | ||
350 | #else | ||
351 | 341 | ||
352 | if ( web_browser ) | 342 | if ( web_browser ) |
353 | { | 343 | { |
@@ -356,7 +346,7 @@ void LLPanelLogin::setSiteIsAlive( bool alive ) | |||
356 | // mark as available | 346 | // mark as available |
357 | mHtmlAvailable = TRUE; | 347 | mHtmlAvailable = TRUE; |
358 | } | 348 | } |
359 | #endif | 349 | |
360 | } | 350 | } |
361 | } | 351 | } |
362 | 352 | ||
@@ -1216,6 +1206,7 @@ bool LLPanelLogin::loadNewsBar() | |||
1216 | curl_free(curl_version); | 1206 | curl_free(curl_version); |
1217 | curl_free(curl_skin); | 1207 | curl_free(curl_skin); |
1218 | 1208 | ||
1209 | LL_DEBUGS("NewsBar")<< "news bar setup to navigate to: " << full_url.str() << LL_ENDL; | ||
1219 | news_bar->navigateTo( full_url.str() ); | 1210 | news_bar->navigateTo( full_url.str() ); |
1220 | 1211 | ||
1221 | 1212 | ||
diff --git a/linden/indra/newview/llvoiceclient.cpp b/linden/indra/newview/llvoiceclient.cpp index 7b1ed95..5517ca2 100644 --- a/linden/indra/newview/llvoiceclient.cpp +++ b/linden/indra/newview/llvoiceclient.cpp | |||
@@ -62,6 +62,7 @@ | |||
62 | #include "llfirstuse.h" | 62 | #include "llfirstuse.h" |
63 | #include "llviewerwindow.h" | 63 | #include "llviewerwindow.h" |
64 | #include "llviewercamera.h" | 64 | #include "llviewercamera.h" |
65 | #include "hippolimits.h" | ||
65 | 66 | ||
66 | #include "llfloaterfriends.h" //VIVOX, inorder to refresh communicate panel | 67 | #include "llfloaterfriends.h" //VIVOX, inorder to refresh communicate panel |
67 | #include "llfloaterchat.h" // for LLFloaterChat::addChat() | 68 | #include "llfloaterchat.h" // for LLFloaterChat::addChat() |
@@ -1524,6 +1525,15 @@ void LLVoiceClient::setState(state inState) | |||
1524 | 1525 | ||
1525 | mState = inState; | 1526 | mState = inState; |
1526 | } | 1527 | } |
1528 | void LLVoiceClient::close() | ||
1529 | { | ||
1530 | setState(stateDisableCleanup); | ||
1531 | } | ||
1532 | |||
1533 | void LLVoiceClient::start() | ||
1534 | { | ||
1535 | setState(stateStart); | ||
1536 | } | ||
1527 | 1537 | ||
1528 | void LLVoiceClient::stateMachine() | 1538 | void LLVoiceClient::stateMachine() |
1529 | { | 1539 | { |
@@ -1654,12 +1664,12 @@ void LLVoiceClient::stateMachine() | |||
1654 | //std::string exe_path = gDirUtilp->getAppRODataDir(); | 1664 | //std::string exe_path = gDirUtilp->getAppRODataDir(); |
1655 | std::string exe_path = gDirUtilp->getExecutableDir(); | 1665 | std::string exe_path = gDirUtilp->getExecutableDir(); |
1656 | exe_path += gDirUtilp->getDirDelimiter(); | 1666 | exe_path += gDirUtilp->getDirDelimiter(); |
1667 | #if LL_DARWIN | ||
1668 | exe_path += "../Resources/"; | ||
1669 | #endif | ||
1670 | exe_path += gSavedSettings.getString("VoiceModule"); | ||
1657 | #if LL_WINDOWS | 1671 | #if LL_WINDOWS |
1658 | exe_path += "SLVoice.exe"; | 1672 | exe_path += ".exe"; |
1659 | #elif LL_DARWIN | ||
1660 | exe_path += "../Resources/SLVoice"; | ||
1661 | #else | ||
1662 | exe_path += "SLVoice"; | ||
1663 | #endif | 1673 | #endif |
1664 | // See if the vivox executable exists | 1674 | // See if the vivox executable exists |
1665 | llstat s; | 1675 | llstat s; |
@@ -1687,7 +1697,8 @@ void LLVoiceClient::stateMachine() | |||
1687 | STARTUPINFOA sinfo; | 1697 | STARTUPINFOA sinfo; |
1688 | memset(&sinfo, 0, sizeof(sinfo)); | 1698 | memset(&sinfo, 0, sizeof(sinfo)); |
1689 | std::string exe_dir = gDirUtilp->getAppRODataDir(); | 1699 | std::string exe_dir = gDirUtilp->getAppRODataDir(); |
1690 | cmd = "SLVoice.exe"; | 1700 | cmd = gSavedSettings.getString("VoiceModule"); |
1701 | cmd += ".exe"; | ||
1691 | cmd += args; | 1702 | cmd += args; |
1692 | 1703 | ||
1693 | // So retarded. Windows requires that the second parameter to CreateProcessA be a writable (non-const) string... | 1704 | // So retarded. Windows requires that the second parameter to CreateProcessA be a writable (non-const) string... |
diff --git a/linden/indra/newview/llvoiceclient.h b/linden/indra/newview/llvoiceclient.h index cfc336b..9ef3be9 100644 --- a/linden/indra/newview/llvoiceclient.h +++ b/linden/indra/newview/llvoiceclient.h | |||
@@ -516,6 +516,9 @@ static void updatePosition(void); | |||
516 | // Currently this will be false only for PSTN P2P calls. | 516 | // Currently this will be false only for PSTN P2P calls. |
517 | // NOTE: this will return true if the session can't be found. | 517 | // NOTE: this will return true if the session can't be found. |
518 | bool isSessionTextIMPossible(const LLUUID &session_id); | 518 | bool isSessionTextIMPossible(const LLUUID &session_id); |
519 | |||
520 | void close(); | ||
521 | void start(); | ||
519 | 522 | ||
520 | private: | 523 | private: |
521 | 524 | ||
diff --git a/linden/indra/newview/skins/default/html/en-us/loading-error/index.html b/linden/indra/newview/skins/default/html/en-us/loading-error/index.html index 71f9c86..37c8405 100644 --- a/linden/indra/newview/skins/default/html/en-us/loading-error/index.html +++ b/linden/indra/newview/skins/default/html/en-us/loading-error/index.html | |||
@@ -1,14 +1,14 @@ | |||
1 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | 1 | |
2 | DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | ||
2 | <html xmlns="http://www.w3.org/1999/xhtml"> | 3 | <html xmlns="http://www.w3.org/1999/xhtml"> |
3 | <head> | 4 | <head> |
4 | <title>Unable to Connect</title> | 5 | <title>Unable to Connect</title><style> |
5 | <style> | 6 | body {background-color:#000000;font-family:verdana,helvetica,sans-serif;font-size:85%;color:#e9f1f8;width:100%;padding:0px;margin:0px;} |
6 | body {background-color:#000000;font-family:verdana,helvetica,sans-serif;font-size:62.5%;color:#e9f1f8;width:100%;padding:0px;margin:0px;} | ||
7 | a {color:#93a9d5;} | 7 | a {color:#93a9d5;} |
8 | a:active {color:#50607C;text-decoration:underline;} | 8 | a:active {color:#50607C;text-decoration:underline;} |
9 | a:hover {color:#ff7900;text-decoration:underline;} | 9 | a:hover {color:#ff7900;text-decoration:underline;} |
10 | #infobox{position:absolute;top:40%;left:50%;z-index:1;padding:0;width:592px;margin-left:-296px;margin-top:-150px;text-align:center;font-size:1.2em; color:#ccc;} | 10 | #infobox{position:absolute;top:40%;left:50%;z-index:1;padding:0;width:592px;margin-left:-296px;margin-top:-80px;text-align:left;font-size:1.2em; color:#ccc;} |
11 | #infobox #submitbtn {padding:15px 3px 5px 15px;height:28px;width:127px;margin-left:244px;} | 11 | #infobox #submitbtn {height:28px;width:127px;} |
12 | #infobox #submitbtn input {text-transform:capitalize;color:#fff;font-size:1.0em;height:28px;width:127px;border:none;font-weight:normal;background:url(../../btn_purplepill_bg.png) bottom left no-repeat;vertical-align:text-bottom;font-weight:bold;} | 12 | #infobox #submitbtn input {text-transform:capitalize;color:#fff;font-size:1.0em;height:28px;width:127px;border:none;font-weight:normal;background:url(../../btn_purplepill_bg.png) bottom left no-repeat;vertical-align:text-bottom;font-weight:bold;} |
13 | #infobox #submitbtn input:hover.input_over, #login_box #submitbtn input:hover.input_off {color:#fff;border:none;background:url(../../btn_purplepill_bg.png) bottom right no-repeat;} | 13 | #infobox #submitbtn input:hover.input_over, #login_box #submitbtn input:hover.input_off {color:#fff;border:none;background:url(../../btn_purplepill_bg.png) bottom right no-repeat;} |
14 | #infobox #submitbtn input:active.input_over {color:#fff;border:none;background:url(../../btn_purplepill_bg.png) top left no-repeat;} | 14 | #infobox #submitbtn input:active.input_over {color:#fff;border:none;background:url(../../btn_purplepill_bg.png) top left no-repeat;} |
@@ -17,16 +17,34 @@ a:hover {color:#ff7900;text-decoration:underline;} | |||
17 | </head> | 17 | </head> |
18 | <body> | 18 | <body> |
19 | <div id="infobox"> | 19 | <div id="infobox"> |
20 | <img src="../../unabletoconnect.png"><br/> | 20 | <table> |
21 | <p> | 21 | |
22 | Second Life can't establish a connection to the login server. | 22 | <tbody style="height: 100px; overflow: scroll"> |
23 | </p> | 23 | <tr> |
24 | <p> | 24 | Imprudence can't establish a connection to the login screen of the grid you have chosen. |
25 | Please check your internet connection. If your computer or network is protected by a firewall or proxy, make sure that Second Life is permitted to access the network. | 25 | </tr> |
26 | </p> | 26 | <tr> |
27 | <div id="submitbtn"> | 27 | <td> |
28 | <input class="input_over" type="submit" value="Try Again" onclick="document.location='secondlife:///app/login_refresh'; this.className='pressed';" onmouseover="this.className='input_over';" onmouseout="this.className='input_off';" /> | 28 | <img src="../../unabletoconnect.png"><br/> |
29 | </div> | 29 | |
30 | </div> | 30 | <div id="submitbtn"> |
31 | <input class="input_over" type="submit" value="Try Again" onclick="document.location='secondlife:///app/login_refresh'; this.className='pressed';" onmouseover="this.className='input_over';" onmouseout="this.className='input_off';" /> | ||
32 | </div> | ||
33 | |||
34 | <td> | ||
35 | If you are used to see a loginscreen for that grid please | ||
36 | <ul> | ||
37 | <li>for OpenSimulator grids: check if the loginuri of that grid is still valid.</li> | ||
38 | <li>for OpenSimulator and Second Life: check the grid status page of the grid, and</li> | ||
39 | <li>if the grid status page of the grid says online check your internet connection. | ||
40 | If your computer or network is protected by a firewall or proxy, make sure that | ||
41 | Imprudence is permitted to access the network</li> | ||
42 | |||
43 | </ul> | ||
44 | </td> | ||
45 | </tr> | ||
46 | |||
47 | </tbody> | ||
48 | </table> | ||
31 | </div> | 49 | </div> |
32 | </body> \ No newline at end of file | 50 | </body> |
diff --git a/linden/indra/newview/skins/default/html/en-us/loading/loading.html b/linden/indra/newview/skins/default/html/en-us/loading/loading.html new file mode 100644 index 0000000..97174b0 --- /dev/null +++ b/linden/indra/newview/skins/default/html/en-us/loading/loading.html | |||
@@ -0,0 +1,9 @@ | |||
1 | <body style="background-color:#000000;font-family:verdana,helvetica,sans-serif;font-size:62.5%;color:#e9f1f8;"> | ||
2 | <table width="100%" height="100%" border="0"> | ||
3 | <tr> | ||
4 | <td align="center" valign="middle" style="font-size:0.8em;"> | ||
5 | <img src="imprudence_loading.png" align="absmiddle"><br/> loading... | ||
6 | </td> | ||
7 | </tr> | ||
8 | </table> | ||
9 | </body> | ||
diff --git a/linden/indra/newview/viewer_manifest.py b/linden/indra/newview/viewer_manifest.py index 56c2410..e449a7e 100755 --- a/linden/indra/newview/viewer_manifest.py +++ b/linden/indra/newview/viewer_manifest.py | |||
@@ -134,7 +134,7 @@ class ViewerManifest(LLManifest): | |||
134 | self.path("README.txt") | 134 | self.path("README.txt") |
135 | self.path("MANIFESTO.txt") | 135 | self.path("MANIFESTO.txt") |
136 | self.path("CONTRIBUTE.txt") | 136 | self.path("CONTRIBUTE.txt") |
137 | self.path("RELEASE_NOTES.txt") | 137 | #self.path("RELEASE_NOTES.txt") |
138 | self.path("ChangeLog.txt", required=False) | 138 | self.path("ChangeLog.txt", required=False) |
139 | self.end_prefix("../../..") | 139 | self.end_prefix("../../..") |
140 | 140 | ||
@@ -1002,8 +1002,8 @@ class Linux_i686Manifest(LinuxManifest): | |||
1002 | self.path("libz.so.1") | 1002 | self.path("libz.so.1") |
1003 | 1003 | ||
1004 | # OpenAL | 1004 | # OpenAL |
1005 | self.path("libopenal.so.1") | 1005 | self.path("libopenal.so.1.12.854", "libopenal.so.1") |
1006 | self.path("libalut.so.0") | 1006 | self.path("libalut.so.0.1.0", "libalut.so.0") |
1007 | 1007 | ||
1008 | # GTK+ and dependencies | 1008 | # GTK+ and dependencies |
1009 | ## Lets just use the system libraries for all of these: | 1009 | ## Lets just use the system libraries for all of these: |
@@ -1135,17 +1135,15 @@ class Linux_x86_64Manifest(LinuxManifest): | |||
1135 | #self.path("libz.so.1") #not needed | 1135 | #self.path("libz.so.1") #not needed |
1136 | 1136 | ||
1137 | # OpenAL | 1137 | # OpenAL |
1138 | self.path("libopenal.so.1") | 1138 | self.path("libopenal.so.1.12.854", "libopenal.so.1") |
1139 | self.path("libalut.so.0") | 1139 | self.path("libalut.so.0.1.0", "libalut.so.0") |
1140 | |||
1141 | # GTK+ and dependencies | 1140 | # GTK+ and dependencies |
1142 | ## Lets just use the system libraries for all of these: | 1141 | ## Lets just use the system libraries for all of these: |
1143 | ##self.path("libatk-1.0.so.0") | 1142 | ##self.path("libatk-1.0.so.0") |
1144 | ##self.path("libcairo.so.2") | 1143 | ##self.path("libcairo.so.2") |
1145 | ##self.path("libfontconfig.so.1") | 1144 | ##self.path("libfontconfig.so.1") |
1146 | ##self.path("libfreetype.so.6") | 1145 | ##self.path("libfreetype.so.6") |
1147 | self.path("libgdk_pixbuf-2.0.so.0") # was commented to use systems gdk pixbufs instead - | 1146 | #self.path("libgdk_pixbuf-2.0.so.0") |
1148 | # but seems webkit needs it o_O . Packaging for testing now. | ||
1149 | ##self.path("libgdk-x11-2.0.so.0") | 1147 | ##self.path("libgdk-x11-2.0.so.0") |
1150 | ##self.path("libgtk-x11-2.0.so.0") | 1148 | ##self.path("libgtk-x11-2.0.so.0") |
1151 | # self.path("libpango-1.0.so.0") # use systems pango instead | 1149 | # self.path("libpango-1.0.so.0") # use systems pango instead |