From 009db32afecd7e95e6dd37cb8b9899829783a5d4 Mon Sep 17 00:00:00 2001 From: Aimee Linden Date: Fri, 14 May 2010 13:11:18 +0100 Subject: EXT-7138 WIP added a refreshVoiceEffectLists() method to LLVoiceEffectInterface --- indra/newview/llvoicevivox.h | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'indra/newview/llvoicevivox.h') diff --git a/indra/newview/llvoicevivox.h b/indra/newview/llvoicevivox.h index 4d18a897c7..fcf8eaf3e9 100644 --- a/indra/newview/llvoicevivox.h +++ b/indra/newview/llvoicevivox.h @@ -241,6 +241,7 @@ public: virtual bool setVoiceEffect(const LLUUID& id); virtual const LLUUID getVoiceEffect(); + virtual void refreshVoiceEffectLists(bool clear_lists); virtual const voice_effect_list_t &getVoiceEffectList() const { return mVoiceFontList; }; virtual const voice_effect_list_t &getVoiceEffectTemplateList() const { return mVoiceFontTemplateList; }; //@} @@ -848,7 +849,7 @@ private: void accountGetTemplateFontsSendMessage(); void sessionSetVoiceFontSendMessage(sessionState *session); - void notifyVoiceFontObservers(); + void notifyVoiceFontObservers(bool new_fonts = false); typedef enum e_voice_font_type { @@ -878,8 +879,11 @@ private: bool mHasExpired; S32 mFontType; S32 mFontStatus; + bool mIsNew; }; + bool mVoiceFontsReceived; + bool mVoiceFontsNew; voice_effect_list_t mVoiceFontList; voice_effect_list_t mVoiceFontTemplateList; -- cgit v1.2.3 From 110995427fecaf59b4e7885893243a3bb07000db Mon Sep 17 00:00:00 2001 From: Aimee Linden Date: Tue, 18 May 2010 14:07:35 +0100 Subject: EXT-7138 WIP Moved implementation of LLVivoxVoiceClient::getVoiceEffectList() and LLVivoxVoiceClient::getVoiceEffectTemplateList() out of the header file --- indra/newview/llvoicevivox.h | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) (limited to 'indra/newview/llvoicevivox.h') diff --git a/indra/newview/llvoicevivox.h b/indra/newview/llvoicevivox.h index fcf8eaf3e9..39db87b6bd 100644 --- a/indra/newview/llvoicevivox.h +++ b/indra/newview/llvoicevivox.h @@ -242,8 +242,8 @@ public: virtual const LLUUID getVoiceEffect(); virtual void refreshVoiceEffectLists(bool clear_lists); - virtual const voice_effect_list_t &getVoiceEffectList() const { return mVoiceFontList; }; - virtual const voice_effect_list_t &getVoiceEffectTemplateList() const { return mVoiceFontTemplateList; }; + virtual const voice_effect_list_t& getVoiceEffectList() const; + virtual const voice_effect_list_t& getVoiceEffectTemplateList() const; //@} ////////////////////////////// @@ -455,8 +455,6 @@ protected: void tuningCaptureStartSendMessage(int duration); void tuningCaptureStopSendMessage(); - bool inTuningStates(); - //---------------------------------- // devices void clearCaptureDevices(); -- cgit v1.2.3 From 75f6e32f8836b008485ff65a17c2393696aa8fee Mon Sep 17 00:00:00 2001 From: Aimee Linden Date: Tue, 18 May 2010 14:12:54 +0100 Subject: EXT-7337 WIP Added capture buffer for previewing voice fonts to the voice client. --- indra/newview/llvoicevivox.h | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) (limited to 'indra/newview/llvoicevivox.h') diff --git a/indra/newview/llvoicevivox.h b/indra/newview/llvoicevivox.h index 39db87b6bd..6c302962a3 100644 --- a/indra/newview/llvoicevivox.h +++ b/indra/newview/llvoicevivox.h @@ -253,6 +253,18 @@ public: virtual void removeObserver(LLVoiceEffectObserver* observer); //@} + ////////////////////////////// + /// @name Effect preview buffer + //@{ + virtual void recordPreviewBuffer(bool enable); + virtual void playPreviewBuffer(bool enable, const LLUUID& effect_id = LLUUID::null); + virtual void clearPreviewBuffer(); + + virtual bool isPreviewRecording(); + virtual bool isPreviewReady(); + virtual bool isPreviewPlaying(); + //@} + //@} @@ -373,6 +385,11 @@ protected: stateMicTuningStart, stateMicTuningRunning, stateMicTuningStop, + stateCaptureBufferPaused, + stateCaptureBufferRecStart, + stateCaptureBufferRecording, + stateCaptureBufferPlayStart, + stateCaptureBufferPlaying, stateConnectorStart, // connector needs to be started stateConnectorStarting, // waiting for connector handle stateConnectorStarted, // connector handle received @@ -891,6 +908,19 @@ private: typedef std::set voice_font_observer_set_t; voice_font_observer_set_t mVoiceFontObservers; + + // Audio capture buffer + + void captureBufferRecordStartSendMessage(); + void captureBufferRecordStopSendMessage(); + void captureBufferPlayStartSendMessage(const LLUUID& voice_font_id = LLUUID::null); + void captureBufferPlayStopSendMessage(); + + bool mCaptureBufferRecording; + bool mCaptureBufferPlaying; + bool mCaptureBufferClear; + + LLUUID mPreviewVoiceFontID; }; /** -- cgit v1.2.3 From be0662234565f772fc4c89e47400dc9df8277800 Mon Sep 17 00:00:00 2001 From: Aimee Linden Date: Wed, 19 May 2010 16:25:52 +0100 Subject: EXT-7337 WIP Voice font previewing Added LLVoiceEffectInterface::getVoiceEffectProperties Added LLVivoxVoiceClient::getVoiceFontTemplateIndex --- indra/newview/llvoicevivox.h | 2 ++ 1 file changed, 2 insertions(+) (limited to 'indra/newview/llvoicevivox.h') diff --git a/indra/newview/llvoicevivox.h b/indra/newview/llvoicevivox.h index 6c302962a3..1047d2e5ed 100644 --- a/indra/newview/llvoicevivox.h +++ b/indra/newview/llvoicevivox.h @@ -240,6 +240,7 @@ public: //@{ virtual bool setVoiceEffect(const LLUUID& id); virtual const LLUUID getVoiceEffect(); + virtual LLSD getVoiceEffectProperties(const LLUUID& id); virtual void refreshVoiceEffectLists(bool clear_lists); virtual const voice_effect_list_t& getVoiceEffectList() const; @@ -859,6 +860,7 @@ private: void deleteVoiceFontTemplates(); S32 getVoiceFontIndex(const LLUUID& id) const; + S32 getVoiceFontTemplateIndex(const LLUUID& id) const; void accountGetSessionFontsSendMessage(); void accountGetTemplateFontsSendMessage(); -- cgit v1.2.3 From 4c6d743665ae39a6402ee7b86f43043cb4c5806d Mon Sep 17 00:00:00 2001 From: Aimee Linden Date: Wed, 19 May 2010 21:13:19 +0100 Subject: EXT-7337 WIP Voice font previewing Handle mediaCompletionEvents in the voice client to update UI when preview playback ends. --- indra/newview/llvoicevivox.h | 2 ++ 1 file changed, 2 insertions(+) (limited to 'indra/newview/llvoicevivox.h') diff --git a/indra/newview/llvoicevivox.h b/indra/newview/llvoicevivox.h index 1047d2e5ed..5ba8082d56 100644 --- a/indra/newview/llvoicevivox.h +++ b/indra/newview/llvoicevivox.h @@ -499,6 +499,7 @@ protected: void connectorShutdownResponse(int statusCode, std::string &statusString); void accountLoginStateChangeEvent(std::string &accountHandle, int statusCode, std::string &statusString, int state); + void mediaCompletionEvent(std::string &sessionGroupHandle, std::string &mediaCompletionType); void mediaStreamUpdatedEvent(std::string &sessionHandle, std::string &sessionGroupHandle, int statusCode, std::string &statusString, int state, bool incoming); void textStreamUpdatedEvent(std::string &sessionHandle, std::string &sessionGroupHandle, bool enabled, int state, bool incoming); void sessionAddedEvent(std::string &uriString, std::string &alias, std::string &sessionHandle, std::string &sessionGroupHandle, bool isChannel, bool incoming, std::string &nameString, std::string &applicationString); @@ -1015,6 +1016,7 @@ protected: bool hasExpired; S32 fontType; S32 fontStatus; + std::string mediaCompletionType; // Members for processing text between tags std::string textBuffer; -- cgit v1.2.3 From 5cf632aacbae683676c341a7f1470108cdf65b59 Mon Sep 17 00:00:00 2001 From: Aimee Linden Date: Sat, 22 May 2010 17:58:45 +0100 Subject: EXT-7138 WIP Voice Morphing - Go into stateCaptureBufferPaused as soon as the Voice Effects preview is opened. Disconnecting from voice on hitting record was taking too long and causing the start of the voice recording to be cut off. --- indra/newview/llvoicevivox.h | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) (limited to 'indra/newview/llvoicevivox.h') diff --git a/indra/newview/llvoicevivox.h b/indra/newview/llvoicevivox.h index 5ba8082d56..e4250d2ba3 100644 --- a/indra/newview/llvoicevivox.h +++ b/indra/newview/llvoicevivox.h @@ -257,9 +257,9 @@ public: ////////////////////////////// /// @name Effect preview buffer //@{ - virtual void recordPreviewBuffer(bool enable); - virtual void playPreviewBuffer(bool enable, const LLUUID& effect_id = LLUUID::null); - virtual void clearPreviewBuffer(); + virtual void enablePreviewBuffer(bool enable); + virtual void recordPreviewBuffer(bool record); + virtual void playPreviewBuffer(bool play, const LLUUID& effect_id = LLUUID::null); virtual bool isPreviewRecording(); virtual bool isPreviewReady(); @@ -919,9 +919,10 @@ private: void captureBufferPlayStartSendMessage(const LLUUID& voice_font_id = LLUUID::null); void captureBufferPlayStopSendMessage(); - bool mCaptureBufferRecording; - bool mCaptureBufferPlaying; - bool mCaptureBufferClear; + bool mCaptureBufferMode; // Disconnected from voice channels while using the capture buffer. + bool mCaptureBufferRecording; // A voice sample is being captured. + bool mCaptureBufferRecorded; // A voice sample is captured in the buffer ready to play. + bool mCaptureBufferPlaying; // A voice sample is being played. LLUUID mPreviewVoiceFontID; }; -- cgit v1.2.3 From 32826f31ebfe19f57a1d8cc7c2f3e81df9b5de74 Mon Sep 17 00:00:00 2001 From: Aimee Linden Date: Sat, 22 May 2010 18:09:56 +0100 Subject: EXT-7337 WIP Voice Morphing - Limit maximum recording sample to 15 seconds. --- indra/newview/llvoicevivox.h | 1 + 1 file changed, 1 insertion(+) (limited to 'indra/newview/llvoicevivox.h') diff --git a/indra/newview/llvoicevivox.h b/indra/newview/llvoicevivox.h index e4250d2ba3..3c7567610d 100644 --- a/indra/newview/llvoicevivox.h +++ b/indra/newview/llvoicevivox.h @@ -924,6 +924,7 @@ private: bool mCaptureBufferRecorded; // A voice sample is captured in the buffer ready to play. bool mCaptureBufferPlaying; // A voice sample is being played. + LLTimer mCaptureTimer; LLUUID mPreviewVoiceFontID; }; -- cgit v1.2.3 From 1ebbe196910110eb51497f272abde277f8f0f69a Mon Sep 17 00:00:00 2001 From: Aimee Linden Date: Sun, 23 May 2010 02:22:48 +0100 Subject: EXT-7337 WIP Voice morph previewing Separate Play and Stop callbacks, to allow single click previews in the effect list. --- indra/newview/llvoicevivox.h | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'indra/newview/llvoicevivox.h') diff --git a/indra/newview/llvoicevivox.h b/indra/newview/llvoicevivox.h index 3c7567610d..6a13bcddb3 100644 --- a/indra/newview/llvoicevivox.h +++ b/indra/newview/llvoicevivox.h @@ -258,8 +258,9 @@ public: /// @name Effect preview buffer //@{ virtual void enablePreviewBuffer(bool enable); - virtual void recordPreviewBuffer(bool record); - virtual void playPreviewBuffer(bool play, const LLUUID& effect_id = LLUUID::null); + virtual void recordPreviewBuffer(); + virtual void playPreviewBuffer(const LLUUID& effect_id = LLUUID::null); + virtual void stopPreviewBuffer(); virtual bool isPreviewRecording(); virtual bool isPreviewReady(); @@ -925,7 +926,9 @@ private: bool mCaptureBufferPlaying; // A voice sample is being played. LLTimer mCaptureTimer; - LLUUID mPreviewVoiceFontID; + LLUUID mPreviewVoiceFont; + LLUUID mPreviewVoiceFontLast; + S32 mPlayRequestCount; }; /** -- cgit v1.2.3 From 1cb14cd52bdd7b795f081043fb4444e0a196f82b Mon Sep 17 00:00:00 2001 From: Aimee Linden Date: Sun, 23 May 2010 14:26:24 +0100 Subject: EXT-7337 WIP Removed now redundant isPreviewReady() method. --- indra/newview/llvoicevivox.h | 1 - 1 file changed, 1 deletion(-) (limited to 'indra/newview/llvoicevivox.h') diff --git a/indra/newview/llvoicevivox.h b/indra/newview/llvoicevivox.h index 6a13bcddb3..f67798c207 100644 --- a/indra/newview/llvoicevivox.h +++ b/indra/newview/llvoicevivox.h @@ -263,7 +263,6 @@ public: virtual void stopPreviewBuffer(); virtual bool isPreviewRecording(); - virtual bool isPreviewReady(); virtual bool isPreviewPlaying(); //@} -- cgit v1.2.3 From 08e610adfa8124fa7b990f952ad3053b955b62d3 Mon Sep 17 00:00:00 2001 From: Aimee Linden Date: Sun, 23 May 2010 19:44:30 +0100 Subject: EXT-7335 WIP Parse Vivox voice font expiry timestamps into ISO 8601 standard dates. --- indra/newview/llvoicevivox.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'indra/newview/llvoicevivox.h') diff --git a/indra/newview/llvoicevivox.h b/indra/newview/llvoicevivox.h index f67798c207..130fdac146 100644 --- a/indra/newview/llvoicevivox.h +++ b/indra/newview/llvoicevivox.h @@ -664,7 +664,7 @@ protected: void addVoiceFont(const S32 id, const std::string &name, const std::string &description, - const std::string &expiration_date, + const LLDate &expiration_date, const bool has_expired, const S32 font_type, const S32 font_status, @@ -893,7 +893,7 @@ private: LLUUID mID; S32 mFontIndex; std::string mName; - std::string mExpirationDate; + LLDate mExpirationDate; bool mHasExpired; S32 mFontType; S32 mFontStatus; @@ -1016,7 +1016,7 @@ protected: std::string subscriptionType; S32 id; std::string descriptionString; - std::string expirationDateString; + LLDate expirationDate; bool hasExpired; S32 fontType; S32 fontStatus; @@ -1037,7 +1037,7 @@ protected: void StartTag(const char *tag, const char **attr); void EndTag(const char *tag); void CharData(const char *buffer, int length); - + LLDate vivoxTimeStampToLLDate(const std::string& vivox_ts); }; -- cgit v1.2.3 From 15c3b2c6309fa4b45376f3d62e33bfcd3ccdbfc7 Mon Sep 17 00:00:00 2001 From: Aimee Linden Date: Mon, 24 May 2010 02:27:07 +0100 Subject: EXT-7335 WIP Added notification of expiring voice effects --- indra/newview/llvoicevivox.h | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) (limited to 'indra/newview/llvoicevivox.h') diff --git a/indra/newview/llvoicevivox.h b/indra/newview/llvoicevivox.h index 130fdac146..d71fe132c5 100644 --- a/indra/newview/llvoicevivox.h +++ b/indra/newview/llvoicevivox.h @@ -857,7 +857,9 @@ private: // Voice Fonts - void deleteVoiceFonts(); + void expireVoiceFonts(); + void deleteVoiceFont(const LLUUID& id); + void deleteAllVoiceFonts(); void deleteVoiceFontTemplates(); S32 getVoiceFontIndex(const LLUUID& id) const; @@ -867,7 +869,7 @@ private: void accountGetTemplateFontsSendMessage(); void sessionSetVoiceFontSendMessage(sessionState *session); - void notifyVoiceFontObservers(bool new_fonts = false); + void notifyVoiceFontObservers(bool lists_changed = false); typedef enum e_voice_font_type { @@ -894,10 +896,12 @@ private: S32 mFontIndex; std::string mName; LLDate mExpirationDate; - bool mHasExpired; S32 mFontType; S32 mFontStatus; bool mIsNew; + + LLTimer mExpiryTimer; + LLTimer mExpiryWarningTimer; }; bool mVoiceFontsReceived; @@ -912,6 +916,9 @@ private: typedef std::set voice_font_observer_set_t; voice_font_observer_set_t mVoiceFontObservers; + LLTimer mVoiceFontExpiryTimer; + + // Audio capture buffer void captureBufferRecordStartSendMessage(); -- cgit v1.2.3 From 0fc44d319fbc0e5865e0ca76b51b2f436b72ad87 Mon Sep 17 00:00:00 2001 From: Aimee Linden Date: Mon, 24 May 2010 15:11:46 +0100 Subject: EXT-7335 WIP Clean up warnings when parsing Vivox timestamps. Tidied up initialization of voice font expiry timers. --- indra/newview/llvoicevivox.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'indra/newview/llvoicevivox.h') diff --git a/indra/newview/llvoicevivox.h b/indra/newview/llvoicevivox.h index d71fe132c5..debc03377f 100644 --- a/indra/newview/llvoicevivox.h +++ b/indra/newview/llvoicevivox.h @@ -900,8 +900,8 @@ private: S32 mFontStatus; bool mIsNew; - LLTimer mExpiryTimer; - LLTimer mExpiryWarningTimer; + LLFrameTimer mExpiryTimer; + LLFrameTimer mExpiryWarningTimer; }; bool mVoiceFontsReceived; @@ -916,7 +916,7 @@ private: typedef std::set voice_font_observer_set_t; voice_font_observer_set_t mVoiceFontObservers; - LLTimer mVoiceFontExpiryTimer; + LLFrameTimer mVoiceFontExpiryTimer; // Audio capture buffer -- cgit v1.2.3