Commit Graph

12954 Commits (a2113ecc71ea29aebb05c2aa676afc7ce05b9563)

Author SHA1 Message Date
Justin Clark-Casey (justincc) 109ddd1bd5 add mssql support for media on a prim
compiles but not tested.  please test and correct if necessary!
2010-07-26 23:34:23 +01:00
Justin Clark-Casey (justincc) 849fc0483f add mysql support for media on a prim 2010-07-26 23:34:23 +01:00
Justin Clark-Casey (justincc) 4d23749241 provide config option for media on a prim 2010-07-26 23:34:23 +01:00
Justin Clark-Casey (justincc) 412fed975f relocate serialization code from SQLiteRegionData to MoapModule using load and save events.
This is better modularity.  It also allows MoapModule to be replaced with some other media module that may behave completely differently in the future.
Remaining non-modularity:
PrimitiveBaseShape needs explicit Media and MediaRaw fields.  MediaRaw is required in order to shuttle the pre-serialization data back and forth from the database layer.
The database also needs to know about MediaRaw though not about Media.
IMO, it would be extremely nice to remove these hard codings but this is a bridge too far at the present time.
2010-07-26 23:34:23 +01:00
Justin Clark-Casey (justincc) b51b2efdc8 Add EventManager.OnSceneObjectPreSave() for future use. This is triggered immediately before a copy of the group is persisted to storage 2010-07-26 23:34:22 +01:00
Justin Clark-Casey (justincc) 586ae0f6a0 Add EventManager.OnSceneObjectLoaded() for future use. This is fired immediately after a scene object is loaded from storage. 2010-07-26 23:34:22 +01:00
Justin Clark-Casey (justincc) afdbeba4e4 Put a wrapper around the media texture region serialization
THIS WILL BREAK EXISTING MEDIA TEXTURE PERSISTENCE.  Please delete your existing sqlite databases if you are experimenting with this branch.
This wrapper will make it easier to maintain compatibility if the media texture data evolves.
This will also make it easier to store non-sl media texture data.
2010-07-26 23:34:22 +01:00
Justin Clark-Casey (justincc) d764c95d09 also add avatar id to an updated media url - not just new ones 2010-07-26 23:34:22 +01:00
Justin Clark-Casey (justincc) b06308e1d3 Properly set TextureEntry.MediaFlags when a media texture is set
Media flags is cleared via a direct TextureEntry update from the client.  If the clearing leaves no media textures on the prim, then a CAP ObjectMediaUpdate is not received.  If there are still media textures present then one is received.
This change fixes drag-and-drop on Windows (and Mac?) clients.  It may also fix problems with clearing and then subsequently setting new media textures.
2010-07-26 23:34:22 +01:00
Justin Clark-Casey (justincc) 60c52ac0c4 start adding user ids to the media urls 2010-07-26 23:34:22 +01:00
Justin Clark-Casey (justincc) f872a2af11 add missing regionstore migration file for new fields. D'oh!
this should enable persistence now
2010-07-26 23:34:22 +01:00
Justin Clark-Casey (justincc) cd985ab71b Handle checking of line starting "*" wildcard for whitelist patterns
A line starting * can only be applied to the domain, not the path
2010-07-26 23:34:21 +01:00
Justin Clark-Casey (justincc) 664cbe2357 refactor: simplify current whitelist url checking by using System.Uri 2010-07-26 23:34:21 +01:00
Justin Clark-Casey (justincc) 0edabffb7d Implement * end wildcard for whitelist urls 2010-07-26 23:34:21 +01:00
Justin Clark-Casey (justincc) dce7307aa2 properly expose prim media LSL functions to scripts
scripts using these functions should now compile but I don't know how well the methods themselves work yet
llSetPrimMedia(), at least, appears to have problems when a current url is set for a face that doesn't yet have a texture
2010-07-26 23:34:21 +01:00
Justin Clark-Casey (justincc) fc76ce0f46 fix bug where prim persistence would fail if media had never been set 2010-07-26 23:34:21 +01:00
Justin Clark-Casey (justincc) 049ccba8d3 fix previous media interact serverside checking. perform very basic serverside url whitelist checks
at the moment, only checking for the exact name prefix is implemented
for some reason, whitelists are not persisting
this commit also fixes a very recent problem where setting any media texture parameters after the initial configuration would not work
2010-07-26 23:34:21 +01:00
Justin Clark-Casey (justincc) cf7573c8fd implement code to deregister users on DeregisterCaps 2010-07-26 23:34:21 +01:00
Justin Clark-Casey (justincc) ee6cd884c9 implement serverside checks for media texture navigation in order to stop naughty clients 2010-07-26 23:34:21 +01:00
Justin Clark-Casey (justincc) a9101feb10 factor out soon to be common media permissions check code 2010-07-26 23:34:20 +01:00
Justin Clark-Casey (justincc) 51b208e96c implement prim media control permissions serverside in order to stop bad clients 2010-07-26 23:34:20 +01:00
Justin Clark-Casey (justincc) e5615d3a9b discard an object media update message if it tries to set more media textures than the prim has faces 2010-07-26 23:34:20 +01:00
Justin Clark-Casey (justincc) eb5e39d6ef Fire CHANGED_MEDIA event if a media texture is set or cleared 2010-07-26 23:34:20 +01:00
Justin Clark-Casey (justincc) 39a38c4901 implement llClearPrimMedia()
untested
2010-07-26 23:34:20 +01:00
Justin Clark-Casey (justincc) d1a879927c fix issue with GetMediaEntry if the face requested wasn't set to a media texture 2010-07-26 23:34:20 +01:00
Justin Clark-Casey (justincc) 43f480864b fix problem persisting when only one face had a media texture 2010-07-26 23:34:20 +01:00
Justin Clark-Casey (justincc) c76e2ce250 factor out common code for updating the media url 2010-07-26 23:34:19 +01:00
Justin Clark-Casey (justincc) 74bc4f61fd factor out common face parameter checking code 2010-07-26 23:34:19 +01:00
Justin Clark-Casey (justincc) cfb79cd411 minor: correct a few method names and change accessability 2010-07-26 23:34:19 +01:00
Justin Clark-Casey (justincc) a5ad792e6c implement llSetPrimMediaParams()
Untested
2010-07-26 23:34:19 +01:00
Justin Clark-Casey (justincc) 8f403cb4b8 Implement llGetPrimMediaParams()
Exposes method to get media entry via IMoapModule
As yet untested.
2010-07-26 23:34:19 +01:00
Justin Clark-Casey (justincc) 9682e0c733 Implement media texture persistence over server restarts for sqlite
This is currently persisting media as an OSDArray serialized to LLSD XML.
2010-07-26 23:34:19 +01:00
Justin Clark-Casey (justincc) 4ebae14a53 handle ObjectMediaNavigateMessage
Other avatars can now see the webpages that you're navigating to.
The requirement for an initial prim click before the texture displayed has gone away.
Flash (e.g. YouTube) appears to work fine.
Still not persisting any media data so this all disappears on server restart
2010-07-26 23:34:18 +01:00
Justin Clark-Casey (justincc) 468450a94d send a full object update out to avatars when a media texture is initially set
this allows other avatars to see it, but still only after they've clicked on the face
still not handling navigation yet
2010-07-26 23:34:18 +01:00
Justin Clark-Casey (justincc) b1eb83ed6c start sending media url in object full updates 2010-07-26 23:34:18 +01:00
Justin Clark-Casey (justincc) 4a6adff4cd start storing a mediaurl on the scene object part
not yet persisted or sent in the update
2010-07-26 23:34:18 +01:00
Justin Clark-Casey (justincc) c290cdd997 replace hand parsing of incoming object media messages with parsing code in libopenmetaverse 2010-07-26 23:34:18 +01:00
Justin Clark-Casey (justincc) acac47830e start storing incoming MediaEntry on a new Media field on PrimitiveBaseShape
This allows the media texture to persist in memory - logging in and out will redisplay it (after a click) though navigation will be lost
Next need to implement media uri on prim and delegate more incoming llsd parsing to libomv
2010-07-26 23:34:18 +01:00
Justin Clark-Casey (justincc) 9301e36fbc have a stab at sending the correct number of media entries to shapes
actually, this is probably wrong anyway if there's a default texture
it's going to be easier just to gather the object media updates and retain those in-memory now
but what the hell
2010-07-26 23:34:17 +01:00
Justin Clark-Casey (justincc) 701f39c8c2 do a whole load of crappy hacking to get cubes to display google.com
currently, for smoe reason the page only appears when you click a face.
also, actually navigating anywhere always snaps you back to the google search box, for some unknown reason
you can still change the url and normal navigation will work again
2010-07-26 23:34:17 +01:00
Justin Clark-Casey (justincc) 2be7d0cdd4 Register ObjectMedia and ObjectMediaNavigate capabilities from moap module.
Not sure if these are correct, but just supplying these to the viewer is enough to allow it to put media textures on prims (previously the icons were greyed out).
This is not yet persisted even in-memory, so no other avatars will see it yet.
2010-07-26 23:34:17 +01:00
Justin Clark-Casey (justincc) ede446cad6 add stub media-on-a-prim (shared media) module 2010-07-26 23:34:17 +01:00
Justin Clark-Casey (justincc) 09231b1d12 add mssql support for media on a prim
compiles but not tested.  please test and correct if necessary!
2010-07-26 23:26:22 +01:00
Justin Clark-Casey (justincc) d00466f09a add mysql support for media on a prim 2010-07-26 23:19:31 +01:00
Justin Clark-Casey (justincc) f34795c6b3 provide config option for media on a prim 2010-07-26 21:41:39 +01:00
Justin Clark-Casey (justincc) d5e8272ad4 relocate serialization code from SQLiteRegionData to MoapModule using load and save events.
This is better modularity.  It also allows MoapModule to be replaced with some other media module that may behave completely differently in the future.
Remaining non-modularity:
PrimitiveBaseShape needs explicit Media and MediaRaw fields.  MediaRaw is required in order to shuttle the pre-serialization data back and forth from the database layer.
The database also needs to know about MediaRaw though not about Media.
IMO, it would be extremely nice to remove these hard codings but this is a bridge too far at the present time.
2010-07-26 21:09:54 +01:00
Justin Clark-Casey (justincc) c70d57ff98 Add EventManager.OnSceneObjectPreSave() for future use. This is triggered immediately before a copy of the group is persisted to storage 2010-07-26 20:36:28 +01:00
Justin Clark-Casey (justincc) 491b8181ad Add EventManager.OnSceneObjectLoaded() for future use. This is fired immediately after a scene object is loaded from storage. 2010-07-26 20:13:26 +01:00
Justin Clark-Casey (justincc) 4736e38e79 Put a wrapper around the media texture region serialization
THIS WILL BREAK EXISTING MEDIA TEXTURE PERSISTENCE.  Please delete your existing sqlite databases if you are experimenting with this branch.
This wrapper will make it easier to maintain compatibility if the media texture data evolves.
This will also make it easier to store non-sl media texture data.
2010-07-26 19:56:55 +01:00
Melanie aa7cadca52 Add some options 2010-07-24 23:36:07 +01:00