From 14e932c3c3172ac18d9b9603861b915087e0613c Mon Sep 17 00:00:00 2001 From: Hugues Bruyere Date: Fri, 15 Jun 2012 13:49:57 -0400 Subject: [PATCH] Added a function to set the audio balance. --- src/ofxThreadedVideo.cpp | 21 +++++++++++++++++++++ src/ofxThreadedVideo.h | 3 +++ 2 files changed, 24 insertions(+) diff --git a/src/ofxThreadedVideo.cpp b/src/ofxThreadedVideo.cpp index 0792bef..6701b25 100644 --- a/src/ofxThreadedVideo.cpp +++ b/src/ofxThreadedVideo.cpp @@ -31,6 +31,7 @@ ofxThreadedVideo::ofxThreadedVideo(){ bPaused[0] = bPaused[1] = false; bUseTexture = true; volume[0] = volume[1] = 255; + balance[0] = balance[1] = .0f; newSpeed[0] = newSpeed[1] = 1.0f; newLoopType[0] = newLoopType[1] = -1; frame[0] = frame[1] = 0; @@ -169,6 +170,7 @@ void ofxThreadedVideo::update(){ bFrameNew[lastVideoID] = false; bPaused[lastVideoID] = false; volume[lastVideoID] = 255; + balance[lastVideoID] = .0f; } // send event notification @@ -465,6 +467,25 @@ int ofxThreadedVideo::getVolume(){ } } +//-------------------------------------------------------------- +void ofxThreadedVideo::setBalance(float _balance){ + Poco::ScopedLock lock(); + if(currentVideoID != VIDEO_NONE && loadVideoID == VIDEO_NONE){ + balance[currentVideoID] = _balance; + videos[currentVideoID].setBalance(balance[currentVideoID]); + } + balance[getNextLoadID()] = _balance; + videos[getNextLoadID()].setBalance(balance[getNextLoadID()]); +} + +//-------------------------------------------------------------- +float ofxThreadedVideo::getBalance(){ + Poco::ScopedLock lock(); + if(currentVideoID != VIDEO_NONE){ + return balance[currentVideoID]; + } +} + //-------------------------------------------------------------- void ofxThreadedVideo::setLoopState(ofLoopType state){ Poco::ScopedLock lock(); diff --git a/src/ofxThreadedVideo.h b/src/ofxThreadedVideo.h index 42d0517..34517a4 100644 --- a/src/ofxThreadedVideo.h +++ b/src/ofxThreadedVideo.h @@ -66,6 +66,8 @@ class ofxThreadedVideo : public ofThread { void setPosition(float pct); void setVolume(int volume); int getVolume(); + void setBalance(float balance); + float getBalance(); void setLoopState(ofLoopType state); int getLoopState(); void setSpeed(float speed); @@ -133,6 +135,7 @@ class ofxThreadedVideo : public ofThread { float newPosition[2]; int newFrame[2]; int volume[2]; + float balance[2]; bool bPaused[2]; float newSpeed[2]; int newLoopType[2];