You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
133 lines
4.1 KiB
133 lines
4.1 KiB
/*
|
|
|
|
Copyright ( C ) 2003 Arnold Krille <arnold@arnoldarts.de>
|
|
|
|
This library is free software; you can redistribute it and/or
|
|
modify it under the terms of the GNU Library General Public
|
|
License as published by the Free Software Foundation;
|
|
version 2 of the License.
|
|
|
|
This library is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
Library General Public License for more details.
|
|
|
|
You should have received a copy of the GNU Library General Public License
|
|
along with this library; see the file COPYING.LIB. If not, write to
|
|
the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
|
Boston, MA 02111-1307, USA.
|
|
|
|
*/
|
|
|
|
#include "kstereovolumecontrolgui_impl.h"
|
|
|
|
#include <qframe.h>
|
|
#include <kdebug.h>
|
|
#include <iostream>
|
|
|
|
using namespace Arts;
|
|
|
|
KStereoVolumeControlGui_impl::KStereoVolumeControlGui_impl( QFrame* w ) : KLayoutBox_impl( w ? w : new QFrame( 0 ) )
|
|
{
|
|
//kdDebug()<<"KStereoVolumeControlGui_impl::KStereoVolumeControlGui_impl( QFrame* "<<w<<" )"<<endl;
|
|
_mapper = new KStereoVolumeControlGui_EventMapper( this, _qframe );
|
|
this->addWidget( _label, -100 );
|
|
_label.bottom( Arts::East );
|
|
_label.text( "Volume" );
|
|
this->addLine( 1, 0, -100 );
|
|
this->addWidget( _left, 20 );
|
|
this->addWidget( _tickmarks, -100 );
|
|
this->addWidget( _right, 20 );
|
|
this->addLine( 1, 0, -100 );
|
|
this->addWidget( _volumefader, 20 );
|
|
this->addWidget( _fadertickmarks, -100 );
|
|
_fadertickmarks.position( posLeft );
|
|
_tickmarks.position( posLeft|posRight );
|
|
this->dbmin( -36 );
|
|
this->dbmax( 6 );
|
|
_left.framestyle( Arts::Raised|Arts::Panel ); _left.linewidth( 4 );
|
|
_right.framestyle( Arts::Raised|Arts::Panel ); _right.linewidth( 4 );
|
|
this->layoutmargin( 1 ); this->linewidth( 1 ); this->framestyle( Arts::Panel|Arts::Raised );
|
|
}
|
|
|
|
void KStereoVolumeControlGui_impl::constructor( Arts::StereoVolumeControl svc ) {
|
|
//kdDebug() << k_funcinfo << endl;
|
|
_svc = svc;
|
|
connect( svc, "currentVolumeLeft_changed", _left, "invalue" );
|
|
connect( svc, "currentVolumeRight_changed", _right, "invalue" );
|
|
|
|
connect( svc, "scaleFactor_changed", _volumefader, "volume" );
|
|
connect( _volumefader, "volume_changed", svc, "scaleFactor" );
|
|
|
|
_volumefader.volume( svc.scaleFactor() );
|
|
|
|
_mapper->_timer->start( 100 );
|
|
}
|
|
|
|
Arts::Direction KStereoVolumeControlGui_impl::direction() { return _dir; }
|
|
void KStereoVolumeControlGui_impl::direction( Arts::Direction n ) {
|
|
kdDebug() << k_funcinfo << n << endl;
|
|
_dir = n;
|
|
Arts::KLayoutBox_impl::direction( _dir );
|
|
switch ( _dir ) {
|
|
case Arts::LeftToRight:
|
|
case Arts::RightToLeft:
|
|
allWidgets( BottomToTop );
|
|
_label.bottom( Arts::East );
|
|
break;
|
|
case Arts::TopToBottom:
|
|
allWidgets( LeftToRight );
|
|
_label.bottom( Arts::South );
|
|
break;
|
|
case Arts::BottomToTop:
|
|
allWidgets( RightToLeft );
|
|
_label.bottom( Arts::South );
|
|
break;
|
|
default: break;
|
|
}
|
|
}
|
|
|
|
void KStereoVolumeControlGui_impl::allWidgets( Arts::Direction n ) {
|
|
_left.direction( n );
|
|
_right.direction( n );
|
|
_volumefader.direction( n );
|
|
_tickmarks.direction( n );
|
|
_fadertickmarks.direction( n );
|
|
}
|
|
|
|
void KStereoVolumeControlGui_impl::title( const std::string& n ) { _label.text( n ); }
|
|
std::string KStereoVolumeControlGui_impl::title() { return _label.text(); }
|
|
|
|
float KStereoVolumeControlGui_impl::dbmin() { return _dbmin; }
|
|
void KStereoVolumeControlGui_impl::dbmin( float n ) {
|
|
//kdDebug() << k_funcinfo << n << endl;
|
|
_dbmin = n;
|
|
_left.mindB( _dbmin );
|
|
_right.mindB( _dbmin );
|
|
_tickmarks.min( _dbmin );
|
|
_volumefader.dbmin( _dbmin );
|
|
_fadertickmarks.min( _dbmin );
|
|
}
|
|
|
|
float KStereoVolumeControlGui_impl::dbmax() { return _dbmax; }
|
|
void KStereoVolumeControlGui_impl::dbmax( float n ) {
|
|
//kdDebug() << k_funcinfo << n << endl;
|
|
_dbmax = n;
|
|
_left.maxdB( 0 );
|
|
_right.maxdB( 0 );
|
|
_tickmarks.max( 0 );
|
|
_volumefader.dbmax( _dbmax );
|
|
_fadertickmarks.max( _dbmax );
|
|
}
|
|
|
|
void KStereoVolumeControlGui_impl::updateValues() {
|
|
_left.invalue( _svc.currentVolumeLeft() );
|
|
_right.invalue( _svc.currentVolumeRight() );
|
|
}
|
|
|
|
REGISTER_IMPLEMENTATION( KStereoVolumeControlGui_impl );
|
|
|
|
// vim: sw=4 ts=4
|
|
#include "kstereovolumecontrolgui_impl.moc"
|
|
|