[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    ARTS_1_1_BRANCH: arts/flow
From:       George Staikos <staikos () kde ! org>
Date:       2003-07-31 22:20:00
[Download RAW message or body]

CVS commit by staikos: 

backport cpu usage fix


  M +26 -1     stereovolumecontrol_impl.cc   1.7.6.2


--- arts/flow/stereovolumecontrol_impl.cc  #1.7.6.1:1.7.6.2
@@ -24,4 +24,6 @@
 #include "artsflow.h"
 #include "stdsynthmodule.h"
+#include "flowsystem.h"
+#include <debug.h>
 
 using namespace Arts;
@@ -35,7 +37,8 @@ class StereoVolumeControl_impl : virtual
         float _currentVolumeLeft;
         float _currentVolumeRight;
+        bool _virtualized;
 public:
         StereoVolumeControl_impl() :_scaleFactor(1.0), _currentVolumeLeft(0.0),
-                                                                                     \
_currentVolumeRight(0.0) +                                    \
_currentVolumeRight(0.0), _virtualized( false )  {
                 //
@@ -59,4 +62,18 @@ public:
         float currentVolumeRight() { return _currentVolumeRight; }
 
+        void virtualize()
+        {
+                arts_debug( "virtualize StereoVolumeControl" );
+                _virtualized = true;
+                _node()->virtualize( "inleft", _node(), "outleft" );
+                _node()->virtualize( "inright", _node(), "outright" );
+        }
+        void devirtualize()
+        {
+                arts_debug( "devirtualize StereoVolumeControl" );
+                _virtualized = false;
+                _node()->devirtualize( "inleft", _node(), "outleft" );
+                _node()->devirtualize( "inright", _node(), "outright" );
+        }
         /*
           in audio stream inleft, inright;
@@ -65,4 +82,12 @@ public:
         void calculateBlock(unsigned long samples)
         {
+                if( _refCnt == 1 && _scaleFactor == 1.0 )
+                {
+                        if( !_virtualized )
+                                virtualize();
+                        return;
+                }
+                else if( _virtualized )
+                        devirtualize();
                 unsigned long i;
 


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic