00001 00032 #ifndef LLVIEWERPARCELMEDIA_H 00033 #define LLVIEWERPARCELMEDIA_H 00034 00035 #include "llmediabase.h" 00036 00037 class LLMessageSystem; 00038 class LLParcel; 00039 00040 // This class understands land parcels, network traffic, LSL media 00041 // transport commands, and talks to the LLViewerMedia class to actually 00042 // do playback. It allows us to remove code from LLViewerParcelMgr. 00043 class LLViewerParcelMedia 00044 { 00045 public: 00046 static void initClass(); 00047 00048 static void update(LLParcel* parcel); 00049 // called when the agent's parcel has a new URL, or the agent has 00050 // walked on to a new parcel with media 00051 00052 static void play(LLParcel* parcel); 00053 // user clicked play button in media transport controls 00054 00055 static void stop(); 00056 // user clicked stop button in media transport controls 00057 00058 static void pause(); 00059 static void start(); 00060 // restart after pause - no need for all the setup 00061 00062 static void seek(F32 time); 00063 // jump to timecode time 00064 00065 static LLMediaBase::EStatus getStatus(); 00066 00067 static void processParcelMediaCommandMessage( LLMessageSystem *msg, void ** ); 00068 static void processParcelMediaUpdate( LLMessageSystem *msg, void ** ); 00069 00070 public: 00071 static S32 sMediaParcelLocalID; 00072 static LLUUID sMediaRegionID; 00073 }; 00074 00075 #endif