diff --git a/indra/llaudio/llstreamingaudio.h b/indra/llaudio/llstreamingaudio.h index 93479f9d598e2c6e7576e0ffbff3b3873095bd96..4ceb037e09fe7ed2e64f046e53d9e981efe72b5f 100644 --- a/indra/llaudio/llstreamingaudio.h +++ b/indra/llaudio/llstreamingaudio.h @@ -30,11 +30,13 @@ #include "stdtypes.h" // from llcommon +class LLSD; + // Entirely abstract. Based exactly on the historic API. class LLStreamingAudioInterface { public: - virtual ~LLStreamingAudioInterface() {} + virtual ~LLStreamingAudioInterface() = default; virtual void start(const std::string& url) = 0; virtual void stop() = 0; @@ -45,8 +47,15 @@ class LLStreamingAudioInterface virtual void setGain(F32 vol) = 0; virtual F32 getGain() = 0; virtual std::string getURL() = 0; - virtual bool supportsAdjustableBufferSizes(){return false;} - virtual void setBufferSizes(U32 streambuffertime, U32 decodebuffertime){}; + + virtual bool supportsAdjustableBufferSizes() = 0; + virtual void setBufferSizes(U32 streambuffertime, U32 decodebuffertime) = 0; + + virtual bool supportsMetaData() = 0; + virtual const LLSD *getMetaData() = 0; + virtual bool hasNewMetaData() = 0; + virtual bool supportsWaveData() = 0; + virtual bool getWaveData(float* arr, S32 count, S32 stride = 1) = 0; }; #endif // LL_STREAMINGAUDIO_H diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt index dbe8b1fbb5bacb82ce30c43d0ea97e48e1e00e9e..b98a29850484a0e08f3539fc1076178ac6c9609f 100644 --- a/indra/newview/CMakeLists.txt +++ b/indra/newview/CMakeLists.txt @@ -1282,6 +1282,7 @@ set(viewer_HEADER_FILES llviewerkeyboard.h llviewerlayer.h llviewermedia.h + llviewermedia_streamingaudio.h llviewermediafocus.h llviewermediaobserver.h llviewermenu.h diff --git a/indra/newview/llviewermedia_streamingaudio.h b/indra/newview/llviewermedia_streamingaudio.h index 1e7f771e1702a0bb7e7bef3ad28c5f647256fb6b..404065e954712392aa60d4fc7ae1cc4a989e3218 100644 --- a/indra/newview/llviewermedia_streamingaudio.h +++ b/indra/newview/llviewermedia_streamingaudio.h @@ -50,6 +50,15 @@ class LLStreamingAudio_MediaPlugins : public LLStreamingAudioInterface /*virtual*/ F32 getGain(); /*virtual*/ std::string getURL(); + virtual bool supportsAdjustableBufferSizes(){return false;} + virtual void setBufferSizes(U32 streambuffertime, U32 decodebuffertime){}; + + virtual bool supportsMetaData() { return false; } + virtual const LLSD *getMetaData() { return nullptr; } + virtual bool hasNewMetaData() { return false; } + virtual bool supportsWaveData() { return false; } + virtual bool getWaveData(float* arr, S32 count, S32 stride = 1){ return false; } + private: LLPluginClassMedia* initializeMedia(const std::string& media_type);