From 2991c8af61c014e584592b00d5464022535faa2e Mon Sep 17 00:00:00 2001 From: Philip Rosedale Date: Fri, 8 Nov 2013 14:12:04 -0800 Subject: [PATCH] screen does not flash when voxels are clicked --- interface/src/Application.cpp | 14 ++++++++------ interface/src/Audio.cpp | 3 ++- interface/src/Audio.h | 5 ++++- interface/src/avatar/MyAvatar.cpp | 2 +- 4 files changed, 15 insertions(+), 9 deletions(-) diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp index 7724ff0cd2..a1f255c52a 100644 --- a/interface/src/Application.cpp +++ b/interface/src/Application.cpp @@ -1124,7 +1124,7 @@ void Application::mousePressEvent(QMouseEvent* event) { _hoverVoxel.green / 255.f * GREEN_CLICK_FREQUENCY + _hoverVoxel.blue / 255.f * BLUE_CLICK_FREQUENCY) / 3.f; - _audio.startCollisionSound(1.0, frequency, 0.0, HOVER_VOXEL_DECAY); + _audio.startCollisionSound(1.0, frequency, 0.0, HOVER_VOXEL_DECAY, false); _isHoverVoxelSounding = true; const float PERCENTAGE_TO_MOVE_TOWARD = 0.90f; @@ -2039,7 +2039,7 @@ void Application::updateHoverVoxels(float deltaTime, glm::vec3& mouseRayOrigin, _hoverVoxelOriginalColor[1] = _hoverVoxel.green; _hoverVoxelOriginalColor[2] = _hoverVoxel.blue; _hoverVoxelOriginalColor[3] = 1; - _audio.startCollisionSound(1.0, HOVER_VOXEL_FREQUENCY * _hoverVoxel.s * TREE_SCALE, 0.0, HOVER_VOXEL_DECAY); + _audio.startCollisionSound(1.0, HOVER_VOXEL_FREQUENCY * _hoverVoxel.s * TREE_SCALE, 0.0, HOVER_VOXEL_DECAY, false); _isHoverVoxelSounding = true; } } @@ -3176,10 +3176,12 @@ void Application::displayOverlay() { glDisable(GL_LIGHTING); // Display a single screen-size quad to create an alpha blended 'collision' flash - float collisionSoundMagnitude = _audio.getCollisionSoundMagnitude(); - const float VISIBLE_COLLISION_SOUND_MAGNITUDE = 0.5f; - if (collisionSoundMagnitude > VISIBLE_COLLISION_SOUND_MAGNITUDE) { - renderCollisionOverlay(_glWidget->width(), _glWidget->height(), _audio.getCollisionSoundMagnitude()); + if (_audio.getCollisionFlashesScreen()) { + float collisionSoundMagnitude = _audio.getCollisionSoundMagnitude(); + const float VISIBLE_COLLISION_SOUND_MAGNITUDE = 0.5f; + if (collisionSoundMagnitude > VISIBLE_COLLISION_SOUND_MAGNITUDE) { + renderCollisionOverlay(_glWidget->width(), _glWidget->height(), _audio.getCollisionSoundMagnitude()); + } } #ifndef _WIN32 diff --git a/interface/src/Audio.cpp b/interface/src/Audio.cpp index 4006b484b4..d3b23f273a 100644 --- a/interface/src/Audio.cpp +++ b/interface/src/Audio.cpp @@ -676,11 +676,12 @@ void Audio::addProceduralSounds(int16_t* inputBuffer, // // Starts a collision sound. magnitude is 0-1, with 1 the loudest possible sound. // -void Audio::startCollisionSound(float magnitude, float frequency, float noise, float duration) { +void Audio::startCollisionSound(float magnitude, float frequency, float noise, float duration, bool flashScreen) { _collisionSoundMagnitude = magnitude; _collisionSoundFrequency = frequency; _collisionSoundNoise = noise; _collisionSoundDuration = duration; + _collisionFlashesScreen = flashScreen; } // ----------------------------------------------------------- // Accoustic ping (audio system round trip time determination) diff --git a/interface/src/Audio.h b/interface/src/Audio.h index 6dad16f366..ec8ca6989c 100644 --- a/interface/src/Audio.h +++ b/interface/src/Audio.h @@ -55,10 +55,12 @@ public: void lowPassFilter(int16_t* inputBuffer); - void startCollisionSound(float magnitude, float frequency, float noise, float duration); + void startCollisionSound(float magnitude, float frequency, float noise, float duration, bool flashScreen); float getCollisionSoundMagnitude() { return _collisionSoundMagnitude; } + bool getCollisionFlashesScreen() { return _collisionFlashesScreen; } + void ping(); void init(QGLWidget *parent = 0); @@ -102,6 +104,7 @@ private: float _collisionSoundFrequency; float _collisionSoundNoise; float _collisionSoundDuration; + bool _collisionFlashesScreen; int _proceduralEffectSample; float _heartbeatMagnitude; diff --git a/interface/src/avatar/MyAvatar.cpp b/interface/src/avatar/MyAvatar.cpp index 81636d4701..42a5190712 100644 --- a/interface/src/avatar/MyAvatar.cpp +++ b/interface/src/avatar/MyAvatar.cpp @@ -1020,7 +1020,7 @@ void MyAvatar::updateCollisionSound(const glm::vec3 &penetration, float deltaTim fmin(COLLISION_LOUDNESS * velocityTowardCollision, 1.f), frequency * (1.f + velocityTangentToCollision / velocityTowardCollision), fmin(velocityTangentToCollision / velocityTowardCollision * NOISE_SCALING, 1.f), - 1.f - DURATION_SCALING * powf(frequency, 0.5f) / velocityTowardCollision); + 1.f - DURATION_SCALING * powf(frequency, 0.5f) / velocityTowardCollision, true); } }