Source Code (Use browser search to find items of interest.)
Class Index
arts'VControl (./kdemultimedia/arts/tools/main.h:46)
class VControl : public QFrame {
Q_OBJECT
protected:
class VScale *left, *right;
class FFTScopeView *scopeView;
StereoVolumeControl svc;
SimpleSoundServer server;
long effectID;
public:
VControl(QWidget *parent);
~VControl();
public slots:
void updateScales();
void setVolume(int vol);
void showScopeView();
void removeScopeView();
};
arts'VControl::VControl() (./kdemultimedia/arts/tools/main.cpp:119)
VControl::VControl(QWidget *parent) : QFrame(parent), scopeView(0),
server(Reference("global:Arts_SimpleSoundServer"))
{
setMinimumSize(20,300);
if(server.isNull())
{
QMessageBox::critical( 0, "artscontrol",
i18n("Connection to the soundserver failed - make sure that artsd is really running."));
exit(1);
}
show();
QBoxLayout * l = new QHBoxLayout( this );
//l->setAutoAdd(TRUE);
left = new VScale(this);
l->addWidget(left);
right = new VScale(this);
l->addWidget(right);
// 0 => 4.0
// 200 => 2.0
// 400 => 1.0
// 600 => 0.5
// 800 => 0.25
// 1000 => 0.125
// 1200 => 0.0 (forced)
QSlider *slider;
slider = new QSlider(0,1200,100,400,QSlider::Vertical,this,"volumeslider");
connect(slider, SIGNAL(valueChanged(int)), this, SLOT(setVolume(int)));
slider->setTickmarks( QSlider::Right );
l->addWidget(slider);
l->activate();
/*
create a stereo volume control and push it into the
effect chain
*/
{
// create a new stereo volume control object on the server
Object svcobj = server.createObject("StereoVolumeControl");
assert(!svcobj.isNull());
// cast from "Object" to "StereoVolumeControl"
svc = Reference(svcobj._toString());
assert(!svc.isNull());
svc.start();
// put it into the effect chain
effectID = server.outstack().insertBottom(svc,"Volume Control");
}
QTimer *updatescalestimer = new QTimer(this);
updatescalestimer->start(100);
connect(updatescalestimer,SIGNAL(timeout()),this,SLOT(updateScales()));
}
arts'VControl::~VControl() (./kdemultimedia/arts/tools/main.cpp:175)
VControl::~VControl()
{
removeScopeView();
// remove effect from effect chain
server.outstack().remove(effectID);
}
arts'VControl::updateScales() (./kdemultimedia/arts/tools/main.cpp:182)
void VControl::updateScales()
{
left->setValue(svc.currentVolumeLeft());
right->setValue(svc.currentVolumeRight());
}
arts'VControl::setVolume() (./kdemultimedia/arts/tools/main.cpp:188)
void VControl::setVolume(int vol)
{
float volume = pow(2.0,(400.0 - vol)/200.0);
if(vol == 1200) volume = 0.0;
svc.scaleFactor(volume);
}
arts'VControl::showScopeView() (./kdemultimedia/arts/tools/main.cpp:196)
void VControl::showScopeView()
{
if(!scopeView)
{
scopeView = new FFTScopeView(server);
connect(scopeView,SIGNAL(closed()),this,SLOT(removeScopeView()));
}
}
arts'VControl::removeScopeView() (./kdemultimedia/arts/tools/main.cpp:205)
void VControl::removeScopeView()
{
if(scopeView) delete scopeView;
scopeView = 0;
}