[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