summaryrefslogtreecommitdiff
path: root/indra/newview/llviewermedia.cpp
AgeCommit message (Collapse)Author
2009-12-01Automated merge with ssh://rick@hg.lindenlab.com/skolb/mediaRick Pasetto
2009-12-01Fix for EXT-2892/DEV-43568 (if a face is set to show multiple texture ↵Monroe Linden
repeats, only one of the repeats is interactive) Added LLViewerMediaImpl::scaleTextureCoords() function to encapsulate the code that maps from texture coordinates to media coordinates. Made scaleTextureCoords() wrap the texture coordinate to the range [0.0, 1.0) before converting to media coordinates.
2009-12-01DEV-42989: Adjust media priority based on app minimization and focusRick Pasetto
Review #49 This change adjusts each media's priority based on whether the viewer is minimized (media priority becomes HIDDEN) or unfocused (media priority becomes LOW). However, due to the fact that updateMedia() was no longer being called when minimized, I moved its call out of LLViewerTextureList::updateImages() (a seemingly odd place anyway) and into its own idle callback.
2009-12-01Fix for "DEV-43581 - EXT-2901: [BSI] Can't access twitter pages directly via ↵callum
MoaP"
2009-11-25merge in changes from viewer-2-0, manually fixed conflict in ↵James Cook
llviewermessages.cpp
2009-11-25Created lightweight LLNotificationsUtil::add(), switched most alerts to use itJames Cook
Cuts number of includes of llnotifications.h from 300+ to 40.
2009-11-23Fix for DEV-42997 404s result in blank pagecallum
Also needs a tweak to LLQtWebKit that stops navigation to 404 URL specified in code if the URL is empty.
2009-11-20Hopefully, really fix DEV-42093.Monroe Linden
2009-11-19Push the policy that "back", "forward" and "stop" do different things out of ↵Rick Pasetto
LLViewerMedia. Now, LLViewerMedia has explicit skipBack() and skipForward() functions, and the buttons in LLPanelPrimMediaControls now map onto those functions neatly.
2009-11-16Fix for usual signed/unsigned int error from Mac developed changes..callum
2009-11-16Made nearby media list sort on distance from avatar instead of priority.Monroe Linden
When the MediaPerformanceManagerDebug debug setting is enabled, the list will sort by priority the way it used to.
2009-11-13Tweaks to media priority calculation.Monroe Linden
Enabled CPU limit setting by default (set to 100% of 1 CPU). Lowered default limits on plugin priorities: 2 normal+, 4 low, 8 total. Limit on total number of instances now only applies to inworld media -- media instances in the UI (such as the help browser and search) don't count toward the limit. UI media will still bump inworld media down from normal/low priority, though. Several improvements to plugin manager debug code in the nearby media list. Don't load unloaded instances that are at PRIORITY_SLIDESHOW or PRIORITY_HIDDEN (they don't get unloaded, they just won't be loaded unless they're at higher priority). Added LLViewerMediaImpl::isPlayable(), which indicates whether an instance would be loaded if it were high enough in the priority list (taking into account autoplay and current load state). Priority algorithm now takes this into account. Fixed a couple of issues with approximate texture interest calculation and its use in setting priorities. Adjusted sleep times on low and normal priorities to be more friendly.
2009-11-13Automated merge with ssh://rick@hg.lindenlab.com/viewer/viewer-2-0/Rick Pasetto
2009-11-13Special-case a "401" status ("auth required") in ↵Monroe Linden
LLMimeDiscoveryResponder::error() to be treated as a mime type of "text/html" instead of a failure.
2009-11-13Clear the media texture to black instead of almost-black.Monroe Linden
2009-11-13Add functionality to nearby media floater: parcel media & autoplayRick Pasetto
This change implements the enabling/disabling of parcel media, as well as setting the user's autoplay preference. I still am quite confused by this UI, so we'll need to play with it a bit to ensure it is what we want to present to users. This adds a few helpers to llviewerparcelmedia to get the name and URL of media.
2009-11-12Couple LLMimeDiscoveryResponder more tightly with LLViewerMediaImpl. This ↵Monroe Linden
should fix DEV-41596, as well as other potential problems.
2009-11-10Fix for DEV-42328 (Muting then Unmuting All Nearby Media resets nearby media ↵Monroe Linden
to Home URL). Fixed by having LLViewerMedia::updateMediaImpl() copy the media entry's current URL into the media impl's mMediaURL in the case where the impl has a non-empty media URL but the function doesn't do a navigate.
2009-11-10Fix for DEV-42400 (Mouse pointer location does not map correctly to ↵Monroe Linden
non-square media faces).
2009-11-10Added PluginAttachDebuggerToPlugins debug setting.Monroe Linden
Added accessors to get platform-specific process ID from LLProcessLauncher. Added an optional "debug" argument to LLPluginClassMedia::init() and LLPluginProcessParent::init() (defaults to false). Mac only: made the state machine in LLPluginProcessParent::idle() open a new window in Terminal.app with a gdb session attached to the plugin process upon successful launch.
2009-11-09LLViewerMediaImpl now keeps track of which instance is the current parcel ↵Monroe Linden
media instance. The active parcel media instance always gets priority over other inworld media.
2009-11-09Refinement to my previous commit:Monroe Linden
Created LLViewerMediaImpl::unload(), which unloads the media and clears internal state (such as the last-navigated URL) to keep it from getting reloaded. LLViewerMedia::updateMediaImpl() now calls unload() on the impl instead of just using destroyMediaSource().
2009-11-09Fix for DEV-42029 (changing media on multiple faces can make a zombie SLPlugin).Monroe Linden
Made LLViewerMedia::updateMediaImpl() unload the impl's media plugin when the current URL goes empty. Made LLVOVolume::syncMediaData() call removeMediaImpl() if the media data gets deleted.
2009-11-05Fix for DEV-39258.Monroe Linden
When the amount of the texture that's being drawn by the plugin shrinks in either width or height, reallocate the texture (which clears it).
2009-11-02Hook up LLViewerMediaImpl::getName() to call through to ↵Monroe Linden
LLPluginClassMedia::getMediaName() as it should.
2009-10-30On a double-click in the nearby media list, try to focus/zoom in on the prim ↵Monroe Linden
holding the media.
2009-10-30Initial pass at filling in the list in the nearby media floater.Monroe Linden
2009-10-30Add implementation for adding and removing items to and from the nearby ↵Rick Pasetto
media list scroll control
2009-10-30Partial implementation of LLFloaterNearbyMedia::refreshList(), with many ↵Monroe Linden
TODO sections and a bit of ifdef-ed out pseudocode. Initial pass at LLViewerMediaImpl::getProximity(). Currently it just returns the position in the priority list, but that will change.
2009-10-30Fixed a couple problems with getPriorityList().Monroe Linden
2009-10-30Fix a couple other build issues with my previous commit.Monroe Linden
2009-10-30Hooks for the "nearby media" UI.Monroe Linden
Added LLViewerMediaImpl::set/getDisabled(), which will prevent a media instance from loading. Added LLViewerMedia::set/getInWorldMediaDisabled(), which will disable all inworld media fom loading. Added LLViewerMedia::getPriorityList() and made the priority comparitor public.
2009-10-29Added LLViewerMediaImpl::scrollWheel() to route scroll wheel events through ↵Monroe Linden
the media impl. The horizontal scroll arrows in the media controls now send horizontal scrollwheel events instead of arrow keys.
2009-10-29Fix for DEV-41978 (media controls URL is incorrect after whitelist bounces ↵Monroe Linden
webpage back). Added LLViewerMediaImpl::getCurrentMediaURL(), which reflects the most recent url either set with navigateTo or received from the plugin via locationChanged/navigateComplete. LLViewerMediaImpl now uses this when reload() is called. LLPanelPrimMediaControls now uses getCurrentMediaURL() to get the url it displays in the URL input bar and opens with the pop-out control.
2009-10-28Fixes for DEV-41791 and DEV-41920.Monroe Linden
Reworked some of the autoplay logic in LLViewerMediaImpl to try and make it more consistent when media is unloaded and reloaded by the performance manager. LLViewerMediaImpl will now keep track of the media state and current time of media that it unloads for performance reasons, and attempt to restore playing or paused media to the same playhead time and state (playing or paused) when it reloads. Added "done" status that time-based media plugins can use to indicate that they've reached the end of the media and stopped. Added logging of priority transitions, for use in debugging issues with the peformance manager.
2009-10-27Fake a key-up event after each key-down sent to a plugin.Monroe Linden
2009-10-27When media impls crash, don't auto-reload them without some trigger (such as ↵Monroe Linden
clicking on the object again or an incoming NAVIGATE event). This should fix the crash-reload loop issue. Also, be smarter about counting media impls for the hard cap (never count impls that aren't loaded).
2009-10-27Change some logging in LLViewerMediaImpl::navigateTo() to be more explicit ↵Monroe Linden
about what's happening.
2009-10-27Fix for DEV-41435 and DEV-41434 (unload media instances associated with ↵Monroe Linden
muted objects/object owners) Unloading based on object owner isn't completely reliable, because the viewer doesn't have owner data for all objects it knows about.
2009-10-26Volume controls in the media HUD should now work -- this fixes DEV-41746, ↵Monroe Linden
DEV-41748, and DEV-40782. Added LLPluginClassMedia::getVolume(). Added setVolume/getVolumeupdateVolume methods to LLViewerMediaImpl. LLViewerMedia::setVolume() now no longer overrides the volume settings on all media instances -- it now sets a "global volume" value which is multiplied by all instances' volumes to modulate them. Cleaned up volume/mute handling in LLPanelMediaHUD (made it go through the LLViewerMediaImpl interface instead of directly through LLPluginClassMedia, and removed the mMediaVolume member variable, since the media impl now stores that state).
2009-10-23Mergecallum
2009-10-23DEV-41787 Media Auto Play controls were removed from prefs. Also made auto ↵skolb
play override prim settings.
2009-10-23Changes to match new version of llqtwebkit -- passing modifier keys through ↵Monroe Linden
to most user events and using new scroll wheel event.
2009-10-21Fix for DEV-41542 (hitting Tab at google login on MoaP inserts a character ↵Monroe Linden
into the password field). Moved some special-case handling from LLMediaCtrl::handleKeyHere/handleUnicodeCharHere to LLViewerMediaImpl::handleKeyHere/handleUnicodeCharHere so that the key handling for LLViewerMediaFocus gets the benefit of it as well.
2009-10-20Fix for DEV-41567 (MoaP lags from "WARNING: ↵Monroe Linden
LLViewerMediaImpl::calculateInterest: no texture!" log spam). This log statement used to be an anomaly, but now that media can be unloaded it's a relatively common case.
2009-10-20Fix for clicking "home" or "reload" on a web media prim causing a flash of ↵Monroe Linden
the underlying texture.
2009-10-19Fix for a case where the webkit plugin never generates a LOCATION_CHANGED ↵Monroe Linden
event at all.
2009-10-19make callbacks for media hud control data driven, add whitelist indicator , ↵angela@angelas-macbook-pro.local
add secure browsing indicator
2009-10-15Major refactor of LLViewerMediaFocus and LLPanelMediaHUD.Monroe Linden
LLViewerMediaFocus now tracks two separate objects: the currently focused media object, and the media object that's currently being hovered over. It no longer stores smart pointers to either the LLViewerObject or the LLViewerMediaImpl -- it now looks up both by UUID every time they're needed, and fails gracefully if either goes away. This will prevent it from keeping objects from being deleted. The poorly-understood "mouseOverFlag" has been expunged. LLViewerMediaFocus no longer uses LLSelectMgr at all. The object to focus on is explicitly passed between LLViewerMediaFocus and LLPanelMediaHUD instead of going indirectly through the selection manager. LLViewerMediaFocus also no longer interacts with the pick from LLToolPie -- the data it needs from the pick (the object and normal vector) is passed explicitly. LLViewerMediaFocus::setCameraZoom and LLViewerMediaFocus::getBBoxAspectRatio now have no dependencies on the LLViewerMediaFocus object -- all the data they need is passed in when they're called by the LLPanelMediaHUD. I made them static member functions, but they could be moved to LLPanelMediaHUD or even made into file-scoped static functions. The only reason I didn't do either of those is that it seems like they belong with the LLViewerMediaFocus code as opposed to the HUD.
2009-10-13Adding debugging info to LLViewerMediaImpl::navigateToSteve Bennetts