Commit f80955869a7c5282f7ef4183c8d68a589821ea57
- Diff rendering mode:
- inline
- side by side
src/ActionClasses.cpp
(77 / 1)
|   | |||
| 1 | 1 | /**************************************************************************************** | |
| 2 | 2 | * Copyright (c) 2004 Max Howell <max.howell@methylblue.com> * | |
| 3 | 3 | * Copyright (c) 2008 Mark Kretschmann <kretschmann@kde.org> * | |
| 4 | * Copyright (c) 2009 Artur Szymiec <artur.szymiec@gmail.com> * | ||
| 4 | 5 | * * | |
| 5 | 6 | * This program is free software; you can redistribute it and/or modify it under * | |
| 6 | 7 | * the terms of the GNU General Public License as published by the Free Software * | |
| … | … | ||
| 110 | 110 | ||
| 111 | 111 | safePlug( ac, "cover_manager", this ); | |
| 112 | 112 | safePlug( ac, "queue_manager", this ); | |
| 113 | safePlug( ac, "equalizer", this ); | ||
| 114 | 113 | safePlug( ac, "script_manager", this ); | |
| 115 | 114 | ||
| 116 | 115 | addSeparator(); | |
| … | … | ||
| 380 | 380 | << i18n( "&Album" ) ); | |
| 381 | 381 | //setIcons( QStringList() << "media-playlist-replaygain-off-amarok" << "media-track-replaygain-amarok" << "media-album-replaygain-amarok" ); | |
| 382 | 382 | setCurrentItem( AmarokConfig::replayGainMode() ); | |
| 383 | } | ||
| 384 | |||
| 385 | ////////////////////////////////////////////////////////////////////////////////////////// | ||
| 386 | // EqualizerAction | ||
| 387 | ////////////////////////////////////////////////////////////////////////////////////////// | ||
| 388 | EqualizerAction::EqualizerAction( KActionCollection *ac, QObject *parent ) : | ||
| 389 | SelectAction( i18n( "&Equalizer" ), &AmarokConfig::setEqualizerMode, ac, "equalizer_mode", parent ) | ||
| 390 | { | ||
| 391 | NewList(); | ||
| 392 | UpdateContent(); | ||
| 393 | connect( this, SIGNAL( triggered( int ) ), this, SLOT( actTrigg( int ) ) ); | ||
| 394 | } | ||
| 395 | |||
| 396 | void | ||
| 397 | EqualizerAction::UpdateContent() //SLOT | ||
| 398 | { | ||
| 399 | blockSignals( true ); | ||
| 400 | setCurrentItem( AmarokConfig::equalizerMode() ); | ||
| 401 | blockSignals( false ); | ||
| 402 | } | ||
| 403 | |||
| 404 | void | ||
| 405 | EqualizerAction::NewList() //SLOT | ||
| 406 | { | ||
| 407 | if( !The::engineController()->isEqSupported() ) | ||
| 408 | { | ||
| 409 | setEnabled( false ); | ||
| 410 | return; | ||
| 411 | } | ||
| 412 | setEnabled( true ); | ||
| 413 | setItems( QStringList() << i18nc( "State, as in, disabled", "&Off" ) << eqGlobalList() ); | ||
| 414 | } | ||
| 415 | |||
| 416 | void | ||
| 417 | EqualizerAction::actTrigg( int index ) //SLOT | ||
| 418 | { | ||
| 419 | if( The::engineController()->isEqSupported() ) | ||
| 420 | { | ||
| 421 | AmarokConfig::setEqualizerGains( eqCfgGetPresetVal( index - 1 ) ); | ||
| 422 | The::engineController()->eqUpdate(); | ||
| 423 | } | ||
| 424 | } | ||
| 425 | |||
| 426 | QStringList | ||
| 427 | EqualizerAction::eqGlobalList() | ||
| 428 | { | ||
| 429 | // Prepare a global list with duplicates removed | ||
| 430 | QStringList mGlobalList; | ||
| 431 | mGlobalList += AmarokConfig::defEqualizerPresetsNames(); | ||
| 432 | foreach( QString mUsrName, AmarokConfig::equalizerPresetsNames() ) | ||
| 433 | { | ||
| 434 | if( mGlobalList.indexOf( mUsrName ) < 0 ) | ||
| 435 | mGlobalList.append( mUsrName ); | ||
| 436 | } | ||
| 437 | return mGlobalList; | ||
| 438 | } | ||
| 439 | |||
| 440 | QList<int> | ||
| 441 | EqualizerAction::eqCfgGetPresetVal( int mPresetNo ) | ||
| 442 | { | ||
| 443 | QList<int> mPresetVal; | ||
| 444 | if( mPresetNo > eqGlobalList().count() || mPresetNo < 0 ) | ||
| 445 | return mPresetVal; | ||
| 446 | QString mPresetName = eqGlobalList().at(mPresetNo); | ||
| 447 | int idUsr = AmarokConfig::equalizerPresetsNames().indexOf( mPresetName ); | ||
| 448 | int idDef = AmarokConfig::defEqualizerPresetsNames().indexOf( mPresetName ); | ||
| 449 | if( idUsr >= 0 ) | ||
| 450 | { | ||
| 451 | mPresetVal = AmarokConfig::equalizerPresestValues().mid( idUsr*11,11 ); | ||
| 452 | } | ||
| 453 | else if( idDef >= 0) | ||
| 454 | { | ||
| 455 | |||
| 456 | mPresetVal = AmarokConfig::defEqualizerPresestValues().mid( idDef*11,11 ); | ||
| 457 | } | ||
| 458 | return mPresetVal; | ||
| 383 | 459 | } | |
| 384 | 460 | ||
| 385 | 461 | ////////////////////////////////////////////////////////////////////////////////////////// |
src/ActionClasses.h
(16 / 0)
|   | |||
| 1 | 1 | /**************************************************************************************** | |
| 2 | 2 | * Copyright (c) 2004 Max Howell <max.howell@methylblue.com> * | |
| 3 | 3 | * Copyright (c) 2008 Mark Kretschmann <kretschmann@kde.org> * | |
| 4 | * Copyright (c) 2009 Artur Szymiec <artur.szymiec@gmail.com> * | ||
| 4 | 5 | * * | |
| 5 | 6 | * This program is free software; you can redistribute it and/or modify it under * | |
| 6 | 7 | * the terms of the GNU General Public License as published by the Free Software * | |
| … | … | ||
| 119 | 119 | { | |
| 120 | 120 | public: | |
| 121 | 121 | ReplayGainModeAction( KActionCollection *ac, QObject* ); | |
| 122 | }; | ||
| 123 | |||
| 124 | class EqualizerAction : public SelectAction | ||
| 125 | { | ||
| 126 | Q_OBJECT | ||
| 127 | public: | ||
| 128 | EqualizerAction( KActionCollection *ac, QObject* ); | ||
| 129 | public slots: | ||
| 130 | void UpdateContent(); | ||
| 131 | void NewList(); | ||
| 132 | private slots: | ||
| 133 | void actTrigg( int index ); | ||
| 134 | private: | ||
| 135 | QStringList eqGlobalList(); | ||
| 136 | QList<int> eqCfgGetPresetVal ( int mPresetNo ); | ||
| 122 | 137 | }; | |
| 123 | 138 | ||
| 124 | 139 | class BurnMenu : public KMenu |
src/EngineController.cpp
(111 / 0)
|   | |||
| 5 | 5 | * Copyright (c) 2006,2008 Ian Monroe <ian@monroe.nu> * | |
| 6 | 6 | * Copyright (c) 2008 Jason A. Donenfeld <Jason@zx2c4.com> * | |
| 7 | 7 | * Copyright (c) 2009 Nikolaj Hald Nielsen <nhnFreespirit@gmail.com> * | |
| 8 | * Copyright (c) 2009 Artur Szymiec <artur.szymiec@gmail.com> * | ||
| 8 | 9 | * * | |
| 9 | 10 | * This program is free software; you can redistribute it and/or modify it under * | |
| 10 | 11 | * the terms of the GNU General Public License as published by the Free Software * | |
| … | … | ||
| 110 | 110 | delete m_controller; | |
| 111 | 111 | delete m_audio; | |
| 112 | 112 | delete m_preamp; | |
| 113 | delete m_equalizer; | ||
| 113 | 114 | ||
| 114 | 115 | PERF_LOG( "EngineController: loading phonon objects" ) | |
| 115 | 116 | m_media = new Phonon::MediaObject( this ); | |
| … | … | ||
| 120 | 120 | ||
| 121 | 121 | m_controller = new Phonon::MediaController( m_media ); | |
| 122 | 122 | ||
| 123 | //Add an equalizer effect if avaiable | ||
| 124 | QList<Phonon::EffectDescription> mEffectDescriptions = Phonon::BackendCapabilities::availableAudioEffects(); | ||
| 125 | foreach ( Phonon::EffectDescription mDescr, mEffectDescriptions ) { | ||
| 126 | if ( mDescr.name() == QLatin1String( "KEqualizer" ) ) { | ||
| 127 | m_equalizer = new Phonon::Effect( mDescr ); | ||
| 128 | eqUpdate(); | ||
| 129 | } | ||
| 130 | } | ||
| 131 | |||
| 123 | 132 | // HACK we turn off replaygain manually on OSX, until the phonon coreaudio backend is fixed. | |
| 124 | 133 | // as the default is specified in the .cfg file, we can't just tell it to be a different default on OSX | |
| 125 | 134 | #ifdef Q_WS_MAC | |
| … | … | ||
| 665 | 665 | EngineController::trackPositionMs() const | |
| 666 | 666 | { | |
| 667 | 667 | return m_media->currentTime(); | |
| 668 | } | ||
| 669 | |||
| 670 | bool | ||
| 671 | EngineController::isEqSupported() const | ||
| 672 | { | ||
| 673 | // If effect was created it means we have equalizer support | ||
| 674 | return ( !m_equalizer.isNull() ); | ||
| 675 | } | ||
| 676 | |||
| 677 | |||
| 678 | double | ||
| 679 | EngineController::eqMaxGain() const | ||
| 680 | { | ||
| 681 | if( m_equalizer.isNull() ) | ||
| 682 | return 100; | ||
| 683 | QList<Phonon::EffectParameter> mEqPar = m_equalizer->parameters(); | ||
| 684 | if( mEqPar.isEmpty() ) | ||
| 685 | return 100.0; | ||
| 686 | double mScale; | ||
| 687 | mScale = ( fabs(mEqPar.at(0).maximumValue().toDouble() ) + fabs( mEqPar.at(0).minimumValue().toDouble() ) ); | ||
| 688 | mScale /= 2.0; | ||
| 689 | return mScale; | ||
| 690 | } | ||
| 691 | |||
| 692 | QStringList | ||
| 693 | EngineController::eqBandsFreq() const | ||
| 694 | { | ||
| 695 | // This will extract the bands frequency values from effect paramter name | ||
| 696 | // as long as they folow the rules: | ||
| 697 | // eq-preamp paramter will contain 'pre-amp' string | ||
| 698 | // bands parameters are described using schema 'xxxHz' | ||
| 699 | QStringList mBandsFreq; | ||
| 700 | if( m_equalizer.isNull() ) | ||
| 701 | return mBandsFreq; | ||
| 702 | QList<Phonon::EffectParameter> mEqPar = m_equalizer->parameters(); | ||
| 703 | if( mEqPar.isEmpty() ) | ||
| 704 | return mBandsFreq; | ||
| 705 | QRegExp rx( "\\d+(?=Hz)" ); | ||
| 706 | foreach( Phonon::EffectParameter mParam, mEqPar ) | ||
| 707 | { | ||
| 708 | if( mParam.name().contains( QString( "pre-amp" ) ) ) | ||
| 709 | { | ||
| 710 | mBandsFreq << i18n( "Preamp" ); | ||
| 711 | } | ||
| 712 | else if ( mParam.name().contains( rx ) ) | ||
| 713 | { | ||
| 714 | if( rx.cap( 0 ).toInt() < 1000 ) | ||
| 715 | { | ||
| 716 | mBandsFreq << QString( rx.cap( 0 )).append( " Hz" ); | ||
| 717 | } | ||
| 718 | else | ||
| 719 | { | ||
| 720 | mBandsFreq << QString::number( rx.cap( 0 ).toInt()/1000 ).append( " kHz" ); | ||
| 721 | } | ||
| 722 | } | ||
| 723 | } | ||
| 724 | return mBandsFreq; | ||
| 725 | } | ||
| 726 | |||
| 727 | void | ||
| 728 | EngineController::eqUpdate() //SLOT | ||
| 729 | { | ||
| 730 | // if equalizer not present simply return | ||
| 731 | if( m_equalizer.isNull() ) | ||
| 732 | return; | ||
| 733 | // checkif equalizer should be disabled ?? | ||
| 734 | if( AmarokConfig::equalizerMode() <= 0 ) | ||
| 735 | { | ||
| 736 | // Remove effect from path | ||
| 737 | if( m_path.effects().indexOf( m_equalizer ) != -1 ) | ||
| 738 | m_path.removeEffect( m_equalizer ); | ||
| 739 | } | ||
| 740 | else | ||
| 741 | { | ||
| 742 | // Set equalizer parameter according to the gains from setttings | ||
| 743 | QList<Phonon::EffectParameter> mEqPar = m_equalizer->parameters(); | ||
| 744 | QList<int> mEqParCfg = AmarokConfig::equalizerGains(); | ||
| 745 | |||
| 746 | QListIterator<int> mEqParNewIt( mEqParCfg ); | ||
| 747 | double scaledVal; // Scaled value to set from universal -100 - 100 range to plugin scale | ||
| 748 | foreach( Phonon::EffectParameter mParam, mEqPar ) | ||
| 749 | { | ||
| 750 | scaledVal = mEqParNewIt.hasNext() ? mEqParNewIt.next() : 0; | ||
| 751 | scaledVal *= ( fabs(mParam.maximumValue().toDouble() ) + fabs( mParam.minimumValue().toDouble() ) ); | ||
| 752 | scaledVal /= 200.0; | ||
| 753 | m_equalizer->setParameterValue( mParam, scaledVal ); | ||
| 754 | } | ||
| 755 | // Insert effect into path if needed | ||
| 756 | if( m_path.effects().indexOf( m_equalizer ) == -1 ) | ||
| 757 | { | ||
| 758 | if( !m_path.effects().isEmpty() ) | ||
| 759 | { | ||
| 760 | m_path.insertEffect( m_equalizer, m_path.effects().first() ); | ||
| 761 | } | ||
| 762 | else | ||
| 763 | { | ||
| 764 | m_path.insertEffect( m_equalizer ); | ||
| 765 | } | ||
| 766 | } | ||
| 767 | } | ||
| 668 | 768 | } | |
| 669 | 769 | ||
| 670 | 770 | ////////////////////////////////////////////////////////////////////////////////////////// |
src/EngineController.h
(36 / 0)
|   | |||
| 3 | 3 | * Copyright (c) 2004,2005 Max Howell <max.howell@methylblue.com> * | |
| 4 | 4 | * Copyright (c) 2004-2008 Mark Kretschmann <kretschmann@kde.org> * | |
| 5 | 5 | * Copyright (c) 2008 Jason A. Donenfeld <Jason@zx2c4.com> * | |
| 6 | * Copyright (c) 2009 Artur Szymiec <artur.szymiec@gmail.com> * | ||
| 6 | 7 | * * | |
| 7 | 8 | * This program is free software; you can redistribute it and/or modify it under * | |
| 8 | 9 | * the terms of the GNU General Public License as published by the Free Software * | |
| … | … | ||
| 33 | 33 | #include <Phonon/Path> | |
| 34 | 34 | #include <Phonon/MediaController> | |
| 35 | 35 | #include <Phonon/MediaObject> | |
| 36 | #include <Phonon/Effect> | ||
| 37 | #include <Phonon/EffectParameter> | ||
| 36 | 38 | ||
| 37 | 39 | class QTimer; | |
| 38 | 40 | ||
| … | … | ||
| 140 | 140 | */ | |
| 141 | 141 | bool isStream(); | |
| 142 | 142 | ||
| 143 | /** | ||
| 144 | * Phonon kequalizer support is required for Amarok to enable equalizer | ||
| 145 | * this method return whatever ponon support kequalizer effect. | ||
| 146 | * | ||
| 147 | * @return @c true if the phonon support kequalizer effect, @c false otherwise | ||
| 148 | */ | ||
| 149 | bool isEqSupported() const; | ||
| 150 | |||
| 151 | /** | ||
| 152 | * kequalizer implementation for different backends may have different | ||
| 153 | * gain scale. To properly display it we need to get a scale from effect | ||
| 154 | * | ||
| 155 | * @return maximum gain value for kequalizer parameters. | ||
| 156 | */ | ||
| 157 | double eqMaxGain() const; | ||
| 158 | |||
| 159 | /** | ||
| 160 | * kequalizer implementation for different backends may have different | ||
| 161 | * frequency bands. For proper display this will try to extract frequency values | ||
| 162 | * from effect parameters info. | ||
| 163 | * | ||
| 164 | * @return QStringList with band labels (form xxx Hz or xxx kHz). | ||
| 165 | */ | ||
| 166 | QStringList eqBandsFreq() const; | ||
| 167 | |||
| 143 | 168 | public slots: | |
| 144 | 169 | /** | |
| 145 | 170 | * Plays the current track, if there is one | |
| … | … | ||
| 273 | 273 | */ | |
| 274 | 274 | void toggleMute(); | |
| 275 | 275 | ||
| 276 | /** | ||
| 277 | * Update equalizer status - enabled,disabled,set values | ||
| 278 | * | ||
| 279 | * | ||
| 280 | */ | ||
| 281 | void eqUpdate(); | ||
| 282 | |||
| 276 | 283 | private slots: | |
| 277 | 284 | /** | |
| 278 | 285 | * Sets up the Phonon system | |
| … | … | ||
| 319 | 319 | ||
| 320 | 320 | QPointer<Phonon::MediaObject> m_media; | |
| 321 | 321 | QPointer<Phonon::VolumeFaderEffect> m_preamp; | |
| 322 | QPointer<Phonon::Effect> m_equalizer; | ||
| 322 | 323 | QPointer<Phonon::AudioOutput> m_audio; | |
| 323 | 324 | QPointer<Phonon::VolumeFaderEffect> m_fader; | |
| 324 | 325 | QPointer<Phonon::MediaController> m_controller; |
src/MainWindow.cpp
(6 / 0)
|   | |||
| 3 | 3 | * Copyright (c) 2002 Max Howell <max.howell@methylblue.com> * | |
| 4 | 4 | * Copyright (c) 2002 Gabor Lehel <illissius@gmail.com> * | |
| 5 | 5 | * Copyright (c) 2002 Nikolaj Hald Nielsen <nhnFreespirit@gmail.com> * | |
| 6 | * Copyright (c) 2009 Artur Szymiec <artur.szymiec@gmail.com> * | ||
| 6 | 7 | * * | |
| 7 | 8 | * This program is free software; you can redistribute it and/or modify it under * | |
| 8 | 9 | * the terms of the GNU General Public License as published by the Free Software * | |
| … | … | ||
| 769 | 769 | new Amarok::RandomAction( ac, this ); | |
| 770 | 770 | new Amarok::FavorAction( ac, this ); | |
| 771 | 771 | new Amarok::ReplayGainModeAction( ac, this ); | |
| 772 | new Amarok::EqualizerAction( ac, this); | ||
| 772 | 773 | ||
| 773 | 774 | ac->addAssociatedWidget( this ); | |
| 774 | 775 | foreach (QAction* action, ac->actions()) | |
| … | … | ||
| 879 | 879 | m_settingsMenu->addAction( Amarok::actionCollection()->action("replay_gain_mode") ); | |
| 880 | 880 | m_settingsMenu->addSeparator(); | |
| 881 | 881 | #endif | |
| 882 | |||
| 883 | // Add equalizer action - a list with all equalizer presets avaiable | ||
| 884 | m_settingsMenu->addAction( Amarok::actionCollection()->action("equalizer_mode") ); | ||
| 885 | m_settingsMenu->addSeparator(); | ||
| 882 | 886 | ||
| 883 | 887 | m_settingsMenu->addAction( Amarok::actionCollection()->action(KStandardAction::name(KStandardAction::KeyBindings)) ); | |
| 884 | 888 | m_settingsMenu->addAction( Amarok::actionCollection()->action(KStandardAction::name(KStandardAction::Preferences)) ); |
src/amarokconfig.kcfg
(38 / 13)
|   | |||
| 245 | 245 | <label>Whether to fade out when exiting the program.</label> | |
| 246 | 246 | <default>true</default> | |
| 247 | 247 | </entry> | |
| 248 | <entry key="Equalizer Enabled" type="Bool"> | ||
| 249 | <label>Enables the equalizer plugin</label> | ||
| 248 | <entry key="EqualizerMode" type="Int"> | ||
| 249 | <label>Equalizer mode - 0 = off, 1 to n = preset no</label> | ||
| 250 | 250 | <whatsthis>When enabled, an equalizer plugin filters the audio stream.</whatsthis> | |
| 251 | 251 | <default>false</default> | |
| 252 | 252 | </entry> | |
| 253 | <entry key="Equalizer Preamp" type="Int"> | ||
| 254 | <label>Equalizer pre-amplification value, range -100..100, 0 is normal.</label> | ||
| 255 | <default>0</default> | ||
| 256 | <min>-100</min> | ||
| 257 | <max>100</max> | ||
| 253 | <entry key="EqualizerGains" type="IntList"> | ||
| 254 | <label>11 Equalizer gains include pre-amp, range -100..100, 0 is normal.</label> | ||
| 255 | <default>0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0</default> | ||
| 258 | 256 | </entry> | |
| 259 | <entry key="Equalizer Gains" type="IntList"> | ||
| 260 | <label>Band gains for equalizer, 10 values, range -100..100, 0 is normal.</label> | ||
| 261 | <default>0, 0, 0, 0, 0, 0, 0, 0, 0, 0</default> | ||
| 257 | <entry key="EqualizerPresetsNames" type="StringList"> | ||
| 258 | <label>List with user equalizer preset names</label> | ||
| 262 | 259 | </entry> | |
| 263 | <entry key="Equalizer Preset" type="String"> | ||
| 264 | <label>Equalizer preset name.</label> | ||
| 265 | <default>Zero</default> | ||
| 260 | <entry key="EqualizerPresestValues" type="IntList"> | ||
| 261 | <label>List with user presets values</label> | ||
| 266 | 262 | </entry> | |
| 263 | <entry key="DefEqualizerPresetsNames" type="StringList"> | ||
| 264 | <label>List with user equalizer preset names</label> | ||
| 265 | <default>Manual,Classical,Club,Dance,Full Bass,Full Treble,Full Bass + Treble,Laptop/Headphones,Large Hall,Live,Party,Pop,Reggae,Rock,Soft,Ska,Soft Rock,Techno,Zero</default> | ||
| 266 | </entry> | ||
| 267 | <entry key="DefEqualizerPresestValues" type="IntList"> | ||
| 268 | <default> | ||
| 269 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, <!-- Manual --> | ||
| 270 | 0, 0, 0, 0, 0, 0, 0, -40, -40, -40, -50, <!-- Classical --> | ||
| 271 | 0, 0, 0, 20, 30, 30, 30, 20, 0, 0, 0, <!-- Club --> | ||
| 272 | -10, 50, 35, 10, 0, 0, -30, -40, -40, 0, 0, <!-- Dance --> | ||
| 273 | 0, 29, 40, 23, 15, 0, 0, 0, 0, 0, 0, <!-- Full Bass --> | ||
| 274 | -83, -50, -50, -50, -25, 15, 55, 80, 80, 80, 85, <!-- Full Treble --> | ||
| 275 | -41, 35, 30, 0, -40, -25, 10, 45, 55, 60, 60, <!-- Full Bass + Treble --> | ||
| 276 | -16, 25, 50, 25, -20, 0, -30, -40, -40, 0, 0, <!-- Laptop/Headphones --> | ||
| 277 | -25, 50, 50, 30, 30, 0, -25, -25, -25, 0, 0, <!-- Large Hall --> | ||
| 278 | 0, -25, 0, 20, 25, 30, 30, 20, 15, 15, 10, <!-- Live --> | ||
| 279 | 0, 35, 35, 0, 0, 0, 0, 0, 0, 35, 35, <!-- Party --> | ||
| 280 | -15, -10, 25, 35, 40, 25, -5, -15, -15, -10, -10, <!-- Pop --> | ||
| 281 | 0, 0, 0, -5, -30, 0, -35, -35, 0, 0, 0, <!-- Reggae --> | ||
| 282 | -28, 40, 25, -30, -40, -20, 20, 45, 55, 55, 55, <!-- Rock --> | ||
| 283 | -33, 25, 10, -5, -15, -5, 20, 45, 50, 55, 60, <!-- Soft --> | ||
| 284 | -29, -15, -25, -25, -5, 20, 30, 45, 50, 55, 50, <!-- Ska --> | ||
| 285 | 0, 20, 20, 10, -5, -25, -30, -20, -5, 15, 45, <!-- Soft Rock --> | ||
| 286 | -26, 40, 30, 0, -30, -25, 0, 40, 50, 50, 45, <!-- Techno --> | ||
| 287 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 <!-- Zero --> | ||
| 288 | </default> | ||
| 289 | <label>List with user presets values</label> | ||
| 290 | </entry> | ||
| 291 | |||
| 267 | 292 | <entry key="Replay Gain Mode" type="Enum"> | |
| 268 | 293 | <label>The mode for adjusting playback volume.</label> | |
| 269 | 294 | <whatsthis>Whether to adjust the volume of tracks to make them sound the same volume, and if so whether to make the adjustments per-track or per-album.</whatsthis> |
|   | |||
| 1 | 1 | /**************************************************************************************** | |
| 2 | 2 | * Copyright (c) 2004-2009 Mark Kretschmann <kretschmann@kde.org> * | |
| 3 | * Copyright (c) 2009 Artur Szymiec <artur.szymiec@gmail.com> * | ||
| 3 | 4 | * * | |
| 4 | 5 | * This program is free software; you can redistribute it and/or modify it under * | |
| 5 | 6 | * the terms of the GNU General Public License as published by the Free Software * | |
| … | … | ||
| 16 | 16 | ****************************************************************************************/ | |
| 17 | 17 | ||
| 18 | 18 | #include "PlaybackConfig.h" | |
| 19 | |||
| 19 | #include "amarokconfig.h" | ||
| 20 | #include "Amarok.h" | ||
| 21 | #include "ActionClasses.h" | ||
| 22 | #include "EngineController.h" | ||
| 20 | 23 | #include "Debug.h" | |
| 21 | |||
| 22 | 24 | #include <KCMultiDialog> | |
| 25 | #include <kmessagebox.h> | ||
| 23 | 26 | ||
| 24 | |||
| 25 | 27 | PlaybackConfig::PlaybackConfig( QWidget* parent ) | |
| 26 | 28 | : ConfigDialogBase( parent ) | |
| 27 | 29 | { | |
| … | … | ||
| 31 | 31 | kcfg_FadeoutOnExit->setHidden( true ); | |
| 32 | 32 | ||
| 33 | 33 | connect( findChild<QPushButton*>( "pushButtonPhonon" ), SIGNAL( clicked() ), SLOT( configurePhonon() ) ); | |
| 34 | |||
| 35 | // Set up equalizer items : | ||
| 36 | eqSetupUI(); | ||
| 34 | 37 | } | |
| 35 | 38 | ||
| 36 | 39 | PlaybackConfig::~PlaybackConfig() | |
| … | … | ||
| 78 | 78 | KCM->deleteLater(); | |
| 79 | 79 | } | |
| 80 | 80 | ||
| 81 | /////////////////////////////////////////////////////////////// | ||
| 82 | // EQUALIZER METHODS | ||
| 83 | /////////////////////////////////////////////////////////////// | ||
| 84 | void | ||
| 85 | PlaybackConfig::eqSetupUI() | ||
| 86 | { | ||
| 87 | // Check if equalizer is supported - disable controls if not | ||
| 88 | if( !The::engineController()->isEqSupported() ) | ||
| 89 | { | ||
| 90 | EqualizerGroupBox->setDisabled(true); | ||
| 91 | EqualizerGroupBox->setTitle( i18n( "Equalizer not supported by Phonon") ); | ||
| 92 | return; | ||
| 93 | } | ||
| 94 | // Assign slider items to vectors | ||
| 95 | mBands.append( eqPreampSlider ); | ||
| 96 | mBands.append( eqBand0Slider ); | ||
| 97 | mBands.append( eqBand1Slider ); | ||
| 98 | mBands.append( eqBand2Slider ); | ||
| 99 | mBands.append( eqBand3Slider ); | ||
| 100 | mBands.append( eqBand4Slider ); | ||
| 101 | mBands.append( eqBand5Slider ); | ||
| 102 | mBands.append( eqBand6Slider ); | ||
| 103 | mBands.append( eqBand7Slider ); | ||
| 104 | mBands.append( eqBand8Slider ); | ||
| 105 | mBands.append( eqBand9Slider ); | ||
| 106 | mBandsValues.append( eqPreampValue ); | ||
| 107 | mBandsValues.append( eqBand0Value ); | ||
| 108 | mBandsValues.append( eqBand1Value ); | ||
| 109 | mBandsValues.append( eqBand2Value ); | ||
| 110 | mBandsValues.append( eqBand3Value ); | ||
| 111 | mBandsValues.append( eqBand4Value ); | ||
| 112 | mBandsValues.append( eqBand5Value ); | ||
| 113 | mBandsValues.append( eqBand6Value ); | ||
| 114 | mBandsValues.append( eqBand7Value ); | ||
| 115 | mBandsValues.append( eqBand8Value ); | ||
| 116 | mBandsValues.append( eqBand9Value ); | ||
| 117 | mBandsLabels.append( eqPreampLabel ); | ||
| 118 | mBandsLabels.append( eqBand0Label ); | ||
| 119 | mBandsLabels.append( eqBand1Label ); | ||
| 120 | mBandsLabels.append( eqBand2Label ); | ||
| 121 | mBandsLabels.append( eqBand3Label ); | ||
| 122 | mBandsLabels.append( eqBand4Label ); | ||
| 123 | mBandsLabels.append( eqBand5Label ); | ||
| 124 | mBandsLabels.append( eqBand6Label ); | ||
| 125 | mBandsLabels.append( eqBand7Label ); | ||
| 126 | mBandsLabels.append( eqBand8Label ); | ||
| 127 | mBandsLabels.append( eqBand9Label ); | ||
| 128 | // Configure signal and slots to handle presets | ||
| 129 | connect( eqPresets, SIGNAL( currentIndexChanged( int ) ), SLOT ( eqPresetChanged( int ) ) ); | ||
| 130 | foreach( QSlider* mSlider, mBands ) | ||
| 131 | connect( mSlider, SIGNAL( valueChanged( int ) ), SLOT ( eqBandsChanged() ) ); | ||
| 132 | connect( eqPresetSaveBtn, SIGNAL( clicked() ), SLOT( eqSavePreset() ) ); | ||
| 133 | connect( eqPresetDeleteBtn, SIGNAL( clicked() ), SLOT( eqDeletePreset() ) ); | ||
| 134 | connect( eqPresetResetBtn, SIGNAL( clicked() ), SLOT( eqRestorePreset() ) ); | ||
| 135 | // Signals exchange to keep both config dialog and eq action in sync | ||
| 136 | connect( eqPresets, SIGNAL( currentIndexChanged( int ) ), | ||
| 137 | Amarok::actionCollection()->action( "equalizer_mode" ), SLOT( UpdateContent() ) ); | ||
| 138 | connect( Amarok::actionCollection()->action( "equalizer_mode" ), SIGNAL( triggered(int) ), | ||
| 139 | SLOT( eqUpdateUI( int ) ) ); | ||
| 140 | // Ask engine for maximum gain value and compute scale to display values | ||
| 141 | mValueScale = The::engineController()->eqMaxGain(); | ||
| 142 | QString mlblText; | ||
| 143 | mlblText = QString::number( mValueScale, 'f', 1 ); | ||
| 144 | mlblText.append( QString( "dB" ) ); | ||
| 145 | eqMaxEq->setText( mlblText.prepend( QString( "+ " ) ) ); | ||
| 146 | eqMinEq->setText( mlblText.prepend( QString( "- " ) ) ); | ||
| 147 | // Ask engine for band frequencies and set labels | ||
| 148 | QStringList meqBandFrq = The::engineController()->eqBandsFreq(); | ||
| 149 | QStringListIterator i( meqBandFrq ); | ||
| 150 | foreach( QLabel* mLabel, mBandsLabels ) | ||
| 151 | mLabel-> setText( i.hasNext() ? i.next() : "N/A" ); | ||
| 152 | // Set initial preset to current with signal blocking toprevent circular loops | ||
| 153 | eqPresets->blockSignals( true ); | ||
| 154 | eqPresets->addItem( i18nc( "State, as in, disabled", "Off" ) ); | ||
| 155 | eqPresets->addItems( eqGlobalList() ); | ||
| 156 | eqPresets->blockSignals( false ); | ||
| 157 | eqUpdateUI( AmarokConfig::equalizerMode() ); | ||
| 158 | } | ||
| 81 | 159 | ||
| 160 | void | ||
| 161 | PlaybackConfig::eqPresetChanged( int index ) //SLOT | ||
| 162 | { | ||
| 163 | if( index < 0 ) | ||
| 164 | return; | ||
| 165 | // new settings | ||
| 166 | AmarokConfig::setEqualizerMode( index ); | ||
| 167 | AmarokConfig::setEqualizerGains( eqCfgGetPresetVal( eqPresets->currentText() ) ); | ||
| 168 | The::engineController()->eqUpdate(); | ||
| 169 | // update controls | ||
| 170 | eqUpdateUI( index ); | ||
| 171 | } | ||
| 172 | |||
| 173 | void | ||
| 174 | PlaybackConfig::eqBandsChanged() //SLOT | ||
| 175 | { | ||
| 176 | // update values from sliders | ||
| 177 | QList<int> eqGains; | ||
| 178 | foreach( QSlider* mSlider, mBands ) | ||
| 179 | eqGains << mSlider->value(); | ||
| 180 | eqUpdateToolTips(); | ||
| 181 | eqUpdateLabels( eqGains ); | ||
| 182 | AmarokConfig::setEqualizerGains( eqGains ); | ||
| 183 | The::engineController()->eqUpdate(); | ||
| 184 | // Change preset to manual | ||
| 185 | eqPresets->blockSignals( true ); | ||
| 186 | eqPresets->setCurrentIndex( 1 ); | ||
| 187 | eqPresets->blockSignals( false ); | ||
| 188 | } | ||
| 189 | |||
| 190 | void | ||
| 191 | PlaybackConfig::eqUpdateToolTips() | ||
| 192 | { | ||
| 193 | foreach( QSlider* mSlider, mBands ) | ||
| 194 | mSlider->setToolTip( QString::number( mSlider->value()*mValueScale/100.0, 'f', 1 ) ); | ||
| 195 | } | ||
| 196 | |||
| 197 | void | ||
| 198 | PlaybackConfig::eqUpdateLabels( QList<int> & mEqGains ) | ||
| 199 | { | ||
| 200 | QListIterator<int> i( mEqGains ); | ||
| 201 | foreach( QLabel* mLabel, mBandsValues ) | ||
| 202 | mLabel->setText( i.hasNext() ? QString::number( i.next()*mValueScale/100.0, 'f', 1 ) : QString::number( 0 ) ); | ||
| 203 | } | ||
| 204 | |||
| 205 | // SLOTS | ||
| 206 | |||
| 207 | void | ||
| 208 | PlaybackConfig::eqUpdateUI( int index ) // SLOT | ||
| 209 | { | ||
| 210 | if( index < 0 ) | ||
| 211 | return; | ||
| 212 | bool mstate = index>0 ? true : false; | ||
| 213 | eqBandsGroupBox->setEnabled( mstate ); | ||
| 214 | eqPresetSaveBtn->setEnabled( mstate ); | ||
| 215 | eqPresetDeleteBtn->setEnabled( mstate ); | ||
| 216 | eqPresetResetBtn->setEnabled( mstate ); | ||
| 217 | QList<int> eqGains = AmarokConfig::equalizerGains(); | ||
| 218 | QListIterator<int> i( eqGains ); | ||
| 219 | // Update slider values with signal blocking to prevent circular loop | ||
| 220 | foreach( QSlider* mSlider, mBands ) | ||
| 221 | { | ||
| 222 | mSlider->blockSignals( true ); | ||
| 223 | mSlider->setValue( i.hasNext() ? i.next() : 0 ); | ||
| 224 | mSlider->blockSignals( false ); | ||
| 225 | } | ||
| 226 | eqUpdateToolTips(); | ||
| 227 | eqUpdateLabels(eqGains); | ||
| 228 | // Update preset list - with signal blocking to prevent circular loop | ||
| 229 | eqPresets->blockSignals( true ); | ||
| 230 | eqPresets->setCurrentIndex( index ); | ||
| 231 | eqPresets->blockSignals( false) ; | ||
| 232 | } | ||
| 233 | |||
| 234 | void | ||
| 235 | PlaybackConfig::eqDeletePreset() //SLOT | ||
| 236 | { | ||
| 237 | QString mPresetSelected = eqPresets->currentText(); | ||
| 238 | if( eqCfgDeletePreset( mPresetSelected ) ) | ||
| 239 | { | ||
| 240 | eqPresets->blockSignals( true ); | ||
| 241 | eqPresets->clear(); | ||
| 242 | eqPresets->addItem( i18nc( "State, as in, disabled", "Off" ) ); | ||
| 243 | eqPresets->addItems( eqGlobalList() ); | ||
| 244 | eqPresets->blockSignals( false ); | ||
| 245 | ( (Amarok::EqualizerAction*) Amarok::actionCollection()->action( "equalizer_mode") )->NewList(); | ||
| 246 | eqPresets->setCurrentIndex( 1 ); | ||
| 247 | } | ||
| 248 | else | ||
| 249 | { | ||
| 250 | KMessageBox::detailedSorry( this, i18n( "Can't delete this preset !" ), | ||
| 251 | i18n( "Default presets can't be deleted." ), | ||
| 252 | i18n( "Error deleting preset" ) ); | ||
| 253 | } | ||
| 254 | } | ||
| 255 | |||
| 256 | void | ||
| 257 | PlaybackConfig::eqRestorePreset() //SLOT | ||
| 258 | { | ||
| 259 | QString mPresetSelected = eqPresets->currentText(); | ||
| 260 | if( !eqCfgRestorePreset( mPresetSelected ) ) | ||
| 261 | { | ||
| 262 | KMessageBox::detailedSorry( this, i18n( "Can't restore this preset !" ), | ||
| 263 | i18n( "Only default presets can be restored." ), | ||
| 264 | i18n( "Error restoring preset" ) ); | ||
| 265 | return; | ||
| 266 | } | ||
| 267 | // new settings | ||
| 268 | ///AmarokConfig::setEqualizerMode( eqPresets->currentIndex() ); | ||
| 269 | AmarokConfig::setEqualizerGains( eqCfgGetPresetVal( eqPresets->currentText() ) ); | ||
| 270 | The::engineController()->eqUpdate(); | ||
| 271 | // update controls | ||
| 272 | eqUpdateUI( eqPresets->currentIndex() ); | ||
| 273 | } | ||
| 274 | |||
| 275 | void | ||
| 276 | PlaybackConfig::eqSavePreset() //SLOT | ||
| 277 | { | ||
| 278 | QString mPresetSelected = eqPresets->currentText(); | ||
| 279 | if( mPresetSelected == QLatin1String( "Manual" ) ) | ||
| 280 | { | ||
| 281 | KMessageBox::detailedSorry( this, i18n( "Can't save this preset !" ), | ||
| 282 | i18n( "Preset 'Manual' is reserved for momentary settings.\n\ | ||
| 283 | Please choose different name and try again." ), | ||
| 284 | i18n( "Error saving preset" ) ); | ||
| 285 | return; | ||
| 286 | } | ||
| 287 | QList<int> eqGains; | ||
| 288 | foreach( QSlider* mSlider, mBands ) | ||
| 289 | eqGains << mSlider->value(); | ||
| 290 | eqCfgSetPresetVal( mPresetSelected, eqGains ); | ||
| 291 | eqPresets->blockSignals( true ); | ||
| 292 | eqPresets->clear(); | ||
| 293 | eqPresets->addItem( i18nc( "State, as in, disabled", "Off" ) ); | ||
| 294 | eqPresets->addItems( eqGlobalList() ); | ||
| 295 | ( (Amarok::EqualizerAction*) Amarok::actionCollection()->action( "equalizer_mode") )->NewList(); | ||
| 296 | eqPresets->blockSignals( false ); | ||
| 297 | eqPresets->setCurrentIndex( eqPresets->findText( mPresetSelected ) ); | ||
| 298 | } | ||
| 299 | |||
| 300 | // Equalizer preset managment helper functions | ||
| 301 | bool | ||
| 302 | PlaybackConfig::eqCfgDeletePreset( QString & mPresetName ) | ||
| 303 | { | ||
| 304 | // Idea is to delete the preset only if it is user preset: | ||
| 305 | // present on user list & absent od default list | ||
| 306 | int idUsr = AmarokConfig::equalizerPresetsNames().indexOf( mPresetName ); | ||
| 307 | int idDef = AmarokConfig::defEqualizerPresetsNames().indexOf( mPresetName ); | ||
| 308 | if( idUsr >= 0 && idDef < 0 ) | ||
| 309 | { | ||
| 310 | QStringList mNewNames = AmarokConfig::equalizerPresetsNames(); | ||
| 311 | QList<int> mNewValues = AmarokConfig::equalizerPresestValues(); | ||
| 312 | mNewNames.removeAt( idUsr ); | ||
| 313 | for( int it = 0; it <= 10; it++ ) | ||
| 314 | { | ||
| 315 | mNewValues.removeAt( 11*idUsr ); | ||
| 316 | } | ||
| 317 | AmarokConfig::setEqualizerPresetsNames( mNewNames ); | ||
| 318 | AmarokConfig::setEqualizerPresestValues( mNewValues ); | ||
| 319 | return true; | ||
| 320 | } | ||
| 321 | return false; | ||
| 322 | } | ||
| 323 | |||
| 324 | bool | ||
| 325 | PlaybackConfig::eqCfgRestorePreset( QString mPresetName ) | ||
| 326 | { | ||
| 327 | // Idea is to delete the preset if it found on both | ||
| 328 | // user list and default list - delete from the latter if so | ||
| 329 | int idUsr = AmarokConfig::equalizerPresetsNames().indexOf( mPresetName ); | ||
| 330 | int idDef = AmarokConfig::defEqualizerPresetsNames().indexOf( mPresetName ); | ||
| 331 | if( idDef >= 0 ) | ||
| 332 | { | ||
| 333 | QStringList mNewNames = AmarokConfig::equalizerPresetsNames(); | ||
| 334 | QList<int> mNewValues = AmarokConfig::equalizerPresestValues(); | ||
| 335 | mNewNames.removeAt( idUsr ); | ||
| 336 | for( int it = 0; it <= 10; it++ ) | ||
| 337 | { | ||
| 338 | mNewValues.removeAt( 11*idUsr ); | ||
| 339 | } | ||
| 340 | AmarokConfig::setEqualizerPresetsNames( mNewNames ); | ||
| 341 | AmarokConfig::setEqualizerPresestValues( mNewValues ); | ||
| 342 | return true; | ||
| 343 | } | ||
| 344 | return false; | ||
| 345 | } | ||
| 346 | |||
| 347 | void | ||
| 348 | PlaybackConfig::eqCfgSetPresetVal( QString & mPresetName, QList<int> & mPresetValues) | ||
| 349 | { | ||
| 350 | // Idea is to insert new values into user list | ||
| 351 | // if preset exist on the list - replace it values | ||
| 352 | int idUsr = AmarokConfig::equalizerPresetsNames().indexOf( mPresetName ); | ||
| 353 | QStringList mNewNames = AmarokConfig::equalizerPresetsNames(); | ||
| 354 | QList<int> mNewValues = AmarokConfig::equalizerPresestValues(); | ||
| 355 | |||
| 356 | if( idUsr < 0 ) | ||
| 357 | { | ||
| 358 | mNewNames.append( mPresetName ); | ||
| 359 | mNewValues += mPresetValues; | ||
| 360 | } | ||
| 361 | else | ||
| 362 | { | ||
| 363 | for( int it = 0; it <= 10; it++ ) | ||
| 364 | { | ||
| 365 | mNewValues.replace( idUsr*11+it,mPresetValues.value(it) ); | ||
| 366 | } | ||
| 367 | } | ||
| 368 | AmarokConfig::setEqualizerPresetsNames( mNewNames ); | ||
| 369 | AmarokConfig::setEqualizerPresestValues( mNewValues ); | ||
| 370 | } | ||
| 371 | |||
| 372 | QList<int> | ||
| 373 | PlaybackConfig::eqCfgGetPresetVal( QString mPresetName ) | ||
| 374 | { | ||
| 375 | // Idea is to return user preset with request name first | ||
| 376 | // if not look into into deafult preset names | ||
| 377 | int idUsr = AmarokConfig::equalizerPresetsNames().indexOf( mPresetName ); | ||
| 378 | int idDef = AmarokConfig::defEqualizerPresetsNames().indexOf( mPresetName ); | ||
| 379 | |||
| 380 | QList<int> mPresetVal; | ||
| 381 | if( idUsr >= 0 ) | ||
| 382 | { | ||
| 383 | mPresetVal = AmarokConfig::equalizerPresestValues().mid( idUsr*11,11 ); | ||
| 384 | } | ||
| 385 | else if( idDef >= 0) | ||
| 386 | { | ||
| 387 | |||
| 388 | mPresetVal = AmarokConfig::defEqualizerPresestValues().mid( idDef*11,11 ); | ||
| 389 | } | ||
| 390 | return mPresetVal; | ||
| 391 | } | ||
| 392 | |||
| 393 | |||
| 394 | QStringList | ||
| 395 | PlaybackConfig::eqGlobalList() | ||
| 396 | { | ||
| 397 | // This function will build up a global list | ||
| 398 | // first a default preset will comes | ||
| 399 | // then user list is filtered to ommit duplicates from default preset list | ||
| 400 | QStringList mGlobalList; | ||
| 401 | mGlobalList += AmarokConfig::defEqualizerPresetsNames(); | ||
| 402 | foreach( QString mUsrName, AmarokConfig::equalizerPresetsNames() ) | ||
| 403 | { | ||
| 404 | if( mGlobalList.indexOf( mUsrName ) < 0 ) | ||
| 405 | mGlobalList.append( mUsrName ); | ||
| 406 | } | ||
| 407 | return mGlobalList; | ||
| 408 | } | ||
| 82 | 409 | #include "PlaybackConfig.moc" |
|   | |||
| 1 | 1 | /**************************************************************************************** | |
| 2 | 2 | * Copyright (c) 2004-2009 Mark Kretschmann <kretschmann@kde.org> * | |
| 3 | * Copyright (c) 2009 Artur Szymiec <artur.szymiec@gmail.com> * | ||
| 3 | 4 | * * | |
| 4 | 5 | * This program is free software; you can redistribute it and/or modify it under * | |
| 5 | 6 | * the terms of the GNU General Public License as published by the Free Software * | |
| … | … | ||
| 22 | 22 | #include "ConfigDialogBase.h" | |
| 23 | 23 | ||
| 24 | 24 | ||
| 25 | |||
| 25 | 26 | class PlaybackConfig : public ConfigDialogBase, public Ui_PlaybackConfig | |
| 26 | 27 | { | |
| 27 | 28 | Q_OBJECT | |
| … | … | ||
| 34 | 34 | virtual bool hasChanged(); | |
| 35 | 35 | virtual bool isDefault(); | |
| 36 | 36 | virtual void updateSettings(); | |
| 37 | |||
| 37 | public Q_SLOTS: | ||
| 38 | void eqUpdateUI( int index ); | ||
| 38 | 39 | private Q_SLOTS: | |
| 39 | 40 | void configurePhonon(); | |
| 41 | void eqPresetChanged( int index ); | ||
| 42 | void eqBandsChanged(); | ||
| 43 | void eqSavePreset(); | ||
| 44 | void eqDeletePreset(); | ||
| 45 | void eqRestorePreset(); | ||
| 46 | private: | ||
| 47 | double mValueScale; | ||
| 48 | QVector<QSlider*> mBands; | ||
| 49 | QVector<QLabel*> mBandsValues; | ||
| 50 | QVector<QLabel*> mBandsLabels; | ||
| 51 | void eqSetupUI(); | ||
| 52 | void eqUpdateToolTips(); | ||
| 53 | void eqUpdateLabels( QList<int> & mEqGains ); | ||
| 54 | bool eqCfgDeletePreset( QString & mPresetName ); | ||
| 55 | bool eqCfgRestorePreset( QString mPresetName ); | ||
| 56 | void eqCfgSetPresetVal( QString & mPresetName, QList<int> & mPresetValues); | ||
| 57 | QList<int> eqCfgGetPresetVal ( QString mPresetName ); | ||
| 58 | QStringList eqGlobalList(); | ||
| 40 | 59 | }; | |
| 41 | |||
| 42 | 60 | ||
| 43 | 61 | #endif |
|   | |||
| 6 | 6 | <rect> | |
| 7 | 7 | <x>0</x> | |
| 8 | 8 | <y>0</y> | |
| 9 | <width>320</width> | ||
| 10 | <height>349</height> | ||
| 9 | <width>801</width> | ||
| 10 | <height>706</height> | ||
| 11 | 11 | </rect> | |
| 12 | 12 | </property> | |
| 13 | <layout class="QVBoxLayout" name="verticalLayout_2"> | ||
| 14 | <item> | ||
| 13 | <layout class="QGridLayout" name="gridLayout_5"> | ||
| 14 | <item row="0" column="0"> | ||
| 15 | 15 | <widget class="QGroupBox" name="groupBox_2"> | |
| 16 | 16 | <property name="title"> | |
| 17 | 17 | <string>Sound system configuration</string> | |
| … | … | ||
| 33 | 33 | </layout> | |
| 34 | 34 | </widget> | |
| 35 | 35 | </item> | |
| 36 | <item> | ||
| 36 | <item row="1" column="0"> | ||
| 37 | 37 | <widget class="QGroupBox" name="opt_crossfade_2"> | |
| 38 | 38 | <property name="whatsThis"> | |
| 39 | 39 | <string><b>Quit Behavior</b> | |
| … | … | ||
| 91 | 91 | </layout> | |
| 92 | 92 | </widget> | |
| 93 | 93 | </item> | |
| 94 | <item> | ||
| 94 | <item row="2" column="0"> | ||
| 95 | 95 | <widget class="QGroupBox" name="groupBox"> | |
| 96 | 96 | <property name="title"> | |
| 97 | 97 | <string>Miscellaneous</string> | |
| 98 | 98 | </property> | |
| 99 | 99 | <layout class="QGridLayout" name="gridLayout_3"> | |
| 100 | <item row="0" column="0"> | ||
| 100 | <item row="1" column="0"> | ||
| 101 | 101 | <widget class="QCheckBox" name="kcfg_FadeoutOnExit"> | |
| 102 | 102 | <property name="toolTip"> | |
| 103 | 103 | <string>If checked, Amarok will fade out the music on program exit.</string> | |
| … | … | ||
| 107 | 107 | </property> | |
| 108 | 108 | </widget> | |
| 109 | 109 | </item> | |
| 110 | <item row="1" column="0"> | ||
| 110 | <item row="2" column="0"> | ||
| 111 | 111 | <widget class="QCheckBox" name="kcfg_ResumePlayback"> | |
| 112 | 112 | <property name="toolTip"> | |
| 113 | 113 | <string>If checked, Amarok will<br>resume playback from where you left it the previous session -- just like a tape-player.</string> | |
| … | … | ||
| 120 | 120 | </layout> | |
| 121 | 121 | </widget> | |
| 122 | 122 | </item> | |
| 123 | <item> | ||
| 123 | <item row="6" column="0"> | ||
| 124 | 124 | <spacer name="verticalSpacer"> | |
| 125 | 125 | <property name="orientation"> | |
| 126 | 126 | <enum>Qt::Vertical</enum> | |
| … | … | ||
| 132 | 132 | </size> | |
| 133 | 133 | </property> | |
| 134 | 134 | </spacer> | |
| 135 | </item> | ||
| 136 | <item row="3" column="0"> | ||
| 137 | <widget class="QGroupBox" name="EqualizerGroupBox"> | ||
| 138 | <property name="title"> | ||
| 139 | <string>Equalizer</string> | ||
| 140 | </property> | ||
| 141 | <layout class="QGridLayout" name="gridLayout_7"> | ||
| 142 | <item row="2" column="0"> | ||
| 143 | <widget class="QLabel" name="eqPresetslabel"> | ||
| 144 | <property name="text"> | ||
| 145 | <string>Presets:</string> | ||
| 146 | </property> | ||
| 147 | </widget> | ||
| 148 | </item> | ||
| 149 | <item row="5" column="0"> | ||
| 150 | <widget class="QComboBox" name="eqPresets"> | ||
| 151 | <property name="sizePolicy"> | ||
| 152 | <sizepolicy hsizetype="Expanding" vsizetype="Fixed"> | ||
| 153 | <horstretch>0</horstretch> | ||
| 154 | <verstretch>0</verstretch> | ||
| 155 | </sizepolicy> | ||
| 156 | </property> | ||
| 157 | <property name="toolTip"> | ||
| 158 | <string>List of avaiable equalizer presets.</string> | ||
| 159 | </property> | ||
| 160 | <property name="editable"> | ||
| 161 | <bool>true</bool> | ||
| 162 | </property> | ||
| 163 | </widget> | ||
| 164 | </item> | ||
| 165 | <item row="5" column="1"> | ||
| 166 | <widget class="QPushButton" name="eqPresetSaveBtn"> | ||
| 167 | <property name="sizePolicy"> | ||
| 168 | <sizepolicy hsizetype="Fixed" vsizetype="Fixed"> | ||
| 169 | <horstretch>0</horstretch> | ||
| 170 | <verstretch>0</verstretch> | ||
| 171 | </sizepolicy> | ||
| 172 | </property> | ||
| 173 | <property name="toolTip"> | ||
| 174 | <string>Save changes of currently selected preset</string> | ||
| 175 | </property> | ||
| 176 | <property name="text"> | ||
| 177 | <string>Save</string> | ||
| 178 | </property> | ||
| 179 | </widget> | ||
| 180 | </item> | ||
| 181 | <item row="5" column="2"> | ||
| 182 | <widget class="QPushButton" name="eqPresetDeleteBtn"> | ||
| 183 | <property name="sizePolicy"> | ||
| 184 | <sizepolicy hsizetype="Fixed" vsizetype="Fixed"> | ||
| 185 | <horstretch>0</horstretch> | ||
| 186 | <verstretch>0</verstretch> | ||
| 187 | </sizepolicy> | ||
| 188 | </property> | ||
| 189 | <property name="toolTip"> | ||
| 190 | <string>Delete currently selected preset. Not avaiable for built-in presets.</string> | ||
| 191 | </property> | ||
| 192 | <property name="text"> | ||
| 193 | <string>Delete preset</string> | ||
| 194 | </property> | ||
| 195 | </widget> | ||
| 196 | </item> | ||
| 197 | <item row="5" column="3"> | ||
| 198 | <widget class="QPushButton" name="eqPresetResetBtn"> | ||
| 199 | <property name="sizePolicy"> | ||
| 200 | <sizepolicy hsizetype="Fixed" vsizetype="Fixed"> | ||
| 201 | <horstretch>0</horstretch> | ||
| 202 | <verstretch>0</verstretch> | ||
| 203 | </sizepolicy> | ||
| 204 | </property> | ||
| 205 | <property name="toolTip"> | ||
| 206 | <string>Reset selected preset setting to default. Avaiable only for built-in preset.</string> | ||
| 207 | </property> | ||
| 208 | <property name="text"> | ||
| 209 | <string>Reset to default</string> | ||
| 210 | </property> | ||
| 211 | </widget> | ||
| 212 | </item> | ||
| 213 | <item row="7" column="0" rowspan="2" colspan="4"> | ||
| 214 | <widget class="QGroupBox" name="eqBandsGroupBox"> | ||
| 215 | <property name="sizePolicy"> | ||
| 216 | <sizepolicy hsizetype="MinimumExpanding" vsizetype="Expanding"> | ||
| 217 | <horstretch>0</horstretch> | ||
| 218 | <verstretch>0</verstretch> | ||
| 219 | </sizepolicy> | ||
| 220 | </property> | ||
| 221 | <property name="minimumSize"> | ||
| 222 | <size> | ||
| 223 | <width>0</width> | ||
| 224 | <height>200</height> | ||
| 225 | </size> | ||
| 226 | </property> | ||
| 227 | <property name="title"> | ||
| 228 | <string>Bands</string> | ||
| 229 | </property> | ||
| 230 | <property name="flat"> | ||
| 231 | <bool>false</bool> | ||
| 232 | </property> | ||
| 233 | <layout class="QGridLayout" name="gridLayout_11"> | ||
| 234 | <property name="horizontalSpacing"> | ||
| 235 | <number>5</number> | ||
| 236 | </property> | ||
| 237 | <item row="0" column="1"> | ||
| 238 | <widget class="QGroupBox" name="groupBox_4"> | ||
| 239 | <property name="enabled"> | ||
| 240 | <bool>true</bool> | ||
| 241 | </property> | ||
| 242 | <property name="sizePolicy"> | ||
| 243 | <sizepolicy hsizetype="Fixed" vsizetype="Expanding"> | ||
| 244 | <horstretch>0</horstretch> | ||
| 245 | <verstretch>0</verstretch> | ||
| 246 | </sizepolicy> | ||
| 247 | </property> | ||
| 248 | <property name="flat"> | ||
| 249 | <bool>true</bool> | ||
| 250 | </property> | ||
| 251 | <property name="checkable"> | ||
| 252 | <bool>false</bool> | ||
| 253 | </property> | ||
| 254 | <layout class="QVBoxLayout" name="verticalLayout_2"> | ||
| 255 | <item> | ||
| 256 | <widget class="QLabel" name="eqMaxEq"> | ||
| 257 | <property name="sizePolicy"> | ||
| 258 | <sizepolicy hsizetype="Preferred" vsizetype="Preferred"> | ||
| 259 | <horstretch>0</horstretch> | ||
| 260 | <verstretch>0</verstretch> | ||
| 261 | </sizepolicy> | ||
| 262 | </property> | ||
| 263 | <property name="text"> | ||
| 264 | <string>+ dB</string> | ||
| 265 | </property> | ||
| 266 | <property name="alignment"> | ||
| 267 | <set>Qt::AlignCenter</set> | ||
| 268 | </property> | ||
| 269 | </widget> | ||
| 270 | </item> | ||
| 271 | <item> | ||
| 272 | <spacer name="verticalSpacer_3"> | ||
| 273 | <property name="orientation"> | ||
| 274 | <enum>Qt::Vertical</enum> | ||
| 275 | </property> | ||
| 276 | <property name="sizeHint" stdset="0"> | ||
| 277 | <size> | ||
| 278 | <width>20</width> | ||
| 279 | <height>40</height> | ||
| 280 | </size> | ||
| 281 | </property> | ||
| 282 | </spacer> | ||
| 283 | </item> | ||
| 284 | <item> | ||
| 285 | <widget class="QLabel" name="eqZero"> | ||
| 286 | <property name="sizePolicy"> | ||
| 287 | <sizepolicy hsizetype="Preferred" vsizetype="Preferred"> | ||
| 288 | <horstretch>0</horstretch> | ||
| 289 | <verstretch>0</verstretch> | ||
| 290 | </sizepolicy> | ||
| 291 | </property> | ||
| 292 | <property name="text"> | ||
| 293 | <string> 0 dB</string> | ||
| 294 | </property> | ||
| 295 | <property name="alignment"> | ||
| 296 | <set>Qt::AlignCenter</set> | ||
| 297 | </property> | ||
| 298 | </widget> | ||
| 299 | </item> | ||
| 300 | <item> | ||
| 301 | <spacer name="verticalSpacer_4"> | ||
| 302 | <property name="orientation"> | ||
| 303 | <enum>Qt::Vertical</enum> | ||
| 304 | </property> | ||
| 305 | <property name="sizeHint" stdset="0"> | ||
| 306 | <size> | ||
| 307 | <width>20</width> | ||
| 308 | <height>40</height> | ||
| 309 | </size> | ||
| 310 | </property> | ||
| 311 | </spacer> | ||
| 312 | </item> | ||
| 313 | <item> | ||
| 314 | <widget class="QLabel" name="eqMinEq"> | ||
| 315 | <property name="text"> | ||
| 316 | <string>- dB</string> | ||
| 317 | </property> | ||
| 318 | <property name="alignment"> | ||
| 319 | <set>Qt::AlignCenter</set> | ||
| 320 | </property> | ||
| 321 | </widget> | ||
| 322 | </item> | ||
| 323 | <item> | ||
| 324 | <spacer name="verticalSpacer_2"> | ||
| 325 | <property name="orientation"> | ||
| 326 | <enum>Qt::Vertical</enum> | ||
| 327 | </property> | ||
| 328 | <property name="sizeHint" stdset="0"> | ||
| 329 | <size> | ||
| 330 | <width>20</width> | ||
| 331 | <height>20</height> | ||
| 332 | </size> | ||
| 333 | </property> | ||
| 334 | </spacer> | ||
| 335 | </item> | ||
| 336 | </layout> | ||
| 337 | </widget> | ||
| 338 | </item> | ||
| 339 | <item row="0" column="2"> | ||
| 340 | <widget class="QGroupBox" name="eqPreampGroupBox"> | ||
| 341 | <property name="sizePolicy"> | ||
| 342 | <sizepolicy hsizetype="Fixed" vsizetype="Preferred"> | ||
| 343 | <horstretch>0</horstretch> | ||
| 344 | <verstretch>0</verstretch> | ||
| 345 | </sizepolicy> | ||
| 346 | </property> | ||
| 347 | <property name="title"> | ||
| 348 | <string notr="true"/> | ||
| 349 | </property> | ||
| 350 | <property name="flat"> | ||
| 351 | <bool>true</bool> | ||
| 352 | </property> | ||
| 353 | <layout class="QVBoxLayout" name="verticalLayout"> | ||
| 354 | <item> | ||
| 355 | <widget class="QLabel" name="eqPreampValue"> | ||
| 356 | <property name="text"> | ||
| 357 | <string>0</string> | ||
| 358 | </property> | ||
| 359 | <property name="alignment"> | ||
| 360 | <set>Qt::AlignCenter</set> | ||
| 361 | </property> | ||
| 362 | </widget> | ||
| 363 | </item> | ||
| 364 | <item> | ||
| 365 | <layout class="QHBoxLayout" name="eqPrampHLayout"> | ||
| 366 | <property name="leftMargin"> | ||
| 367 | <number>1</number> | ||
| 368 | </property> | ||
| 369 | <item> | ||
| 370 | <widget class="QSlider" name="eqPreampSlider"> | ||
| 371 | <property name="sizePolicy"> | ||
| 372 | <sizepolicy hsizetype="Fixed" vsizetype="Expanding"> | ||
| 373 | <horstretch>0</horstretch> | ||
| 374 | <verstretch>0</verstretch> | ||
| 375 | </sizepolicy> | ||
| 376 | </property> | ||
| 377 | <property name="layoutDirection"> | ||
| 378 | <enum>Qt::LeftToRight</enum> | ||
| 379 | </property> | ||
| 380 | <property name="minimum"> | ||
| 381 | <number>-100</number> | ||
| 382 | </property> | ||
| 383 | <property name="maximum"> | ||
| 384 | <number>100</number> | ||
| 385 | </property> | ||
| 386 | <property name="sliderPosition"> | ||
| 387 | <number>0</number> | ||
| 388 | </property> | ||
| 389 | <property name="orientation"> | ||
| 390 | <enum>Qt::Vertical</enum> | ||
| 391 | </property> | ||
| 392 | <property name="tickPosition"> | ||
| 393 | <enum>QSlider::TicksAbove</enum> | ||
| 394 | </property> | ||
| 395 | <property name="tickInterval"> | ||
| 396 | <number>20</number> | ||
| 397 | </property> | ||
| 398 | </widget> | ||
| 399 | </item> | ||
| 400 | </layout> | ||
| 401 | </item> | ||
| 402 | <item> | ||
| 403 | <widget class="QLabel" name="eqPreampLabel"> | ||
| 404 | <property name="text"> | ||
| 405 | <string>Hz</string> | ||
| 406 | </property> | ||
| 407 | <property name="alignment"> | ||
| 408 | <set>Qt::AlignCenter</set> | ||
| 409 | </property> | ||
| 410 | </widget> | ||
| 411 | </item> | ||
| 412 | </layout> | ||
| 413 | </widget> | ||
| 414 | </item> | ||
| 415 | <item row="0" column="13"> | ||
| 416 | <spacer name="eqHorizontalSpacer1"> | ||
| 417 | <property name="orientation"> | ||
| 418 | <enum>Qt::Horizontal</enum> | ||
| 419 | </property> | ||
| 420 | <property name="sizeHint" stdset="0"> | ||
| 421 | <size> | ||
| 422 | <width>40</width> | ||
| 423 | <height>20</height> | ||
| 424 | </size> | ||
| 425 | </property> | ||
| 426 | </spacer> | ||
| 427 | </item> | ||
| 428 | <item row="0" column="3"> | ||
| 429 | <widget class="QGroupBox" name="eqBand0GroupBox"> | ||
| 430 | <property name="sizePolicy"> | ||
| 431 | <sizepolicy hsizetype="Fixed" vsizetype="Preferred"> | ||
| 432 | <horstretch>0</horstretch> | ||
| 433 | <verstretch>0</verstretch> | ||
| 434 | </sizepolicy> | ||
| 435 | </property> | ||
| 436 | <property name="title"> | ||
| 437 | <string notr="true"/> | ||
| 438 | </property> | ||
| 439 | <property name="flat"> | ||
| 440 | <bool>true</bool> | ||
| 441 | </property> | ||
| 442 | <layout class="QVBoxLayout" name="verticalLayout_3"> | ||
| 443 | <item> | ||
| 444 | <widget class="QLabel" name="eqBand0Value"> | ||
| 445 | <property name="text"> | ||
| 446 | <string>0</string> | ||
| 447 | </property> | ||
| 448 | <property name="alignment"> | ||
| 449 | <set>Qt::AlignCenter</set> | ||
| 450 | </property> | ||
| 451 | </widget> | ||
| 452 | </item> | ||
| 453 | <item> | ||
| 454 | <layout class="QHBoxLayout" name="eqBand0HLayout"> | ||
| 455 | <item> | ||
| 456 | <widget class="QSlider" name="eqBand0Slider"> | ||
| 457 | <property name="minimum"> | ||
| 458 | <number>-100</number> | ||
| 459 | </property> | ||
| 460 | <property name="maximum"> | ||
| 461 | <number>100</number> | ||
| 462 | </property> | ||
| 463 | <property name="orientation"> | ||
| 464 | <enum>Qt::Vertical</enum> | ||
| 465 | </property> | ||
| 466 | <property name="tickPosition"> | ||
| 467 | <enum>QSlider::TicksAbove</enum> | ||
| 468 | </property> | ||
| 469 | <property name="tickInterval"> | ||
| 470 | <number>20</number> | ||
| 471 | </property> | ||
| 472 | </widget> | ||
| 473 | </item> | ||
| 474 | </layout> | ||
| 475 | </item> | ||
| 476 | <item> | ||
| 477 | <widget class="QLabel" name="eqBand0Label"> | ||
| 478 | <property name="text"> | ||
| 479 | <string>Hz</string> | ||
| 480 | </property> | ||
| 481 | <property name="scaledContents"> | ||
| 482 | <bool>false</bool> | ||
| 483 | </property> | ||
| 484 | <property name="alignment"> | ||
| 485 | <set>Qt::AlignCenter</set> | ||
| 486 | </property> | ||
| 487 | <property name="wordWrap"> | ||
| 488 | <bool>false</bool> | ||
| 489 | </property> | ||
| 490 | </widget> | ||
| 491 | </item> | ||
| 492 | </layout> | ||
| 493 | </widget> | ||
| 494 | </item> | ||
| 495 | <item row="0" column="4"> | ||
| 496 | <widget class="QGroupBox" name="eqBand1GroupBox"> | ||
| 497 | <property name="title"> | ||
| 498 | <string notr="true"/> | ||
| 499 | </property> | ||
| 500 | <property name="flat"> | ||
| 501 | <bool>true</bool> | ||
| 502 | </property> | ||
| 503 | <layout class="QVBoxLayout" name="verticalLayout_4"> | ||
| 504 | <item> | ||
| 505 | <widget class="QLabel" name="eqBand1Value"> | ||
| 506 | <property name="text"> | ||
| 507 | <string>0</string> | ||
| 508 | </property> | ||
| 509 | <property name="alignment"> | ||
| 510 | <set>Qt::AlignCenter</set> | ||
| 511 | </property> | ||
| 512 | </widget> | ||
| 513 | </item> | ||
| 514 | <item> | ||
| 515 | <layout class="QHBoxLayout" name="eqBand1HLayout"> | ||
| 516 | <item> | ||
| 517 | <widget class="QSlider" name="eqBand1Slider"> | ||
| 518 | <property name="minimum"> | ||
| 519 | <number>-100</number> | ||
| 520 | </property> | ||
| 521 | <property name="maximum"> | ||
| 522 | <number>100</number> | ||
| 523 | </property> | ||
| 524 | <property name="orientation"> | ||
| 525 | <enum>Qt::Vertical</enum> | ||
| 526 | </property> | ||
| 527 | <property name="tickPosition"> | ||
| 528 | <enum>QSlider::TicksAbove</enum> | ||
| 529 | </property> | ||
| 530 | <property name="tickInterval"> | ||
| 531 | <number>20</number> | ||
| 532 | </property> | ||
| 533 | </widget> | ||
| 534 | </item> | ||
| 535 | </layout> | ||
| 536 | </item> | ||
| 537 | <item> | ||
| 538 | <widget class="QLabel" name="eqBand1Label"> | ||
| 539 | <property name="text"> | ||
| 540 | <string>Hz</string> | ||
| 541 | </property> | ||
| 542 | <property name="alignment"> | ||
| 543 | <set>Qt::AlignCenter</set> | ||
| 544 | </property> | ||
| 545 | </widget> | ||
| 546 | </item> | ||
| 547 | </layout> | ||
| 548 | </widget> | ||
| 549 | </item> | ||
| 550 | <item row="0" column="5"> | ||
| 551 | <widget class="QGroupBox" name="eqBand2GroupBox"> | ||
| 552 | <property name="flat"> | ||
| 553 | <bool>true</bool> | ||
| 554 | </property> | ||
| 555 | <layout class="QVBoxLayout" name="verticalLayout_5"> | ||
| 556 | <item> | ||
| 557 | <widget class="QLabel" name="eqBand2Value"> | ||
| 558 | <property name="text"> | ||
| 559 | <string>0</string> | ||
| 560 | </property> | ||
| 561 | <property name="alignment"> | ||
| 562 | <set>Qt::AlignCenter</set> | ||
| 563 | </property> | ||
| 564 | </widget> | ||
| 565 | </item> | ||
| 566 | <item> | ||
| 567 | <layout class="QHBoxLayout" name="eqBand2HLayout"> | ||
| 568 | <item> | ||
| 569 | <widget class="QSlider" name="eqBand2Slider"> | ||
| 570 | <property name="minimum"> | ||
| 571 | <number>-100</number> | ||
| 572 | </property> | ||
| 573 | <property name="maximum"> | ||
| 574 | <number>100</number> | ||
| 575 | </property> | ||
| 576 | <property name="orientation"> | ||
| 577 | <enum>Qt::Vertical</enum> | ||
| 578 | </property> | ||
| 579 | <property name="tickPosition"> | ||
| 580 | <enum>QSlider::TicksAbove</enum> | ||
| 581 | </property> | ||
| 582 | <property name="tickInterval"> | ||
| 583 | <number>20</number> | ||
| 584 | </property> | ||
| 585 | </widget> | ||
| 586 | </item> | ||
| 587 | </layout> | ||
| 588 | </item> | ||
| 589 | <item> | ||
| 590 | <widget class="QLabel" name="eqBand2Label"> | ||
| 591 | <property name="text"> | ||
| 592 | <string>Hz</string> | ||
| 593 | </property> | ||
| 594 | <property name="alignment"> | ||
| 595 | <set>Qt::AlignCenter</set> | ||
| 596 | </property> | ||
| 597 | </widget> | ||
| 598 | </item> | ||
| 599 | </layout> | ||
| 600 | </widget> | ||
| 601 | </item> | ||
| 602 | <item row="0" column="6"> | ||
| 603 | <widget class="QGroupBox" name="eqBand3GroupBox"> | ||
| 604 | <property name="title"> | ||
| 605 | <string notr="true"/> | ||
| 606 | </property> | ||
| 607 | <property name="flat"> | ||
| 608 | <bool>true</bool> | ||
| 609 | </property> | ||
| 610 | <layout class="QVBoxLayout" name="verticalLayout_6"> | ||
| 611 | <item> | ||
| 612 | <widget class="QLabel" name="eqBand3Value"> | ||
| 613 | <property name="text"> | ||
| 614 | <string>0</string> | ||
| 615 | </property> | ||
| 616 | <property name="alignment"> | ||
| 617 | <set>Qt::AlignCenter</set> | ||
| 618 | </property> | ||
| 619 | </widget> | ||
| 620 | </item> | ||
| 621 | <item> | ||
| 622 | <layout class="QHBoxLayout" name="eqBand3HLayout"> | ||
| 623 | <item> | ||
| 624 | <widget class="QSlider" name="eqBand3Slider"> | ||
| 625 | <property name="minimum"> | ||
| 626 | <number>-100</number> | ||
| 627 | </property> | ||
| 628 | <property name="maximum"> | ||
| 629 | <number>100</number> | ||
| 630 | </property> | ||
| 631 | <property name="orientation"> | ||
| 632 | <enum>Qt::Vertical</enum> | ||
| 633 | </property> | ||
| 634 | <property name="tickPosition"> | ||
| 635 | <enum>QSlider::TicksAbove</enum> | ||
| 636 | </property> | ||
| 637 | <property name="tickInterval"> | ||
| 638 | <number>20</number> | ||
| 639 | </property> | ||
| 640 | </widget> | ||
| 641 | </item> | ||
| 642 | </layout> | ||
| 643 | </item> | ||
| 644 | <item> | ||
| 645 | <widget class="QLabel" name="eqBand3Label"> | ||
| 646 | <property name="text"> | ||
| 647 | <string>Hz</string> | ||
| 648 | </property> | ||
| 649 | <property name="alignment"> | ||
| 650 | <set>Qt::AlignCenter</set> | ||
| 651 | </property> | ||
| 652 | </widget> | ||
| 653 | </item> | ||
| 654 | </layout> | ||
| 655 | </widget> | ||
| 656 | </item> | ||
| 657 | <item row="0" column="7"> | ||
| 658 | <widget class="QGroupBox" name="eqBand4GroupBox"> | ||
| 659 | <property name="flat"> | ||
| 660 | <bool>true</bool> | ||
| 661 | </property> | ||
| 662 | <layout class="QVBoxLayout" name="verticalLayout_7"> | ||
| 663 | <item> | ||
| 664 | <widget class="QLabel" name="eqBand4Value"> | ||
| 665 | <property name="text"> | ||
| 666 | <string>0</string> | ||
| 667 | </property> | ||
| 668 | <property name="alignment"> | ||
| 669 | <set>Qt::AlignCenter</set> | ||
| 670 | </property> | ||
| 671 | </widget> | ||
| 672 | </item> | ||
| 673 | <item> | ||
| 674 | <layout class="QHBoxLayout" name="eqBand4HLayout"> | ||
| 675 | <item> | ||
| 676 | <widget class="QSlider" name="eqBand4Slider"> | ||
| 677 | <property name="minimum"> | ||
| 678 | <number>-100</number> | ||
| 679 | </property> | ||
| 680 | <property name="maximum"> | ||
| 681 | <number>100</number> | ||
| 682 | </property> | ||
| 683 | <property name="orientation"> | ||
| 684 | <enum>Qt::Vertical</enum> | ||
| 685 | </property> | ||
| 686 | <property name="tickPosition"> | ||
| 687 | <enum>QSlider::TicksAbove</enum> | ||
| 688 | </property> | ||
| 689 | <property name="tickInterval"> | ||
| 690 | <number>20</number> | ||
| 691 | </property> | ||
| 692 | </widget> | ||
| 693 | </item> | ||
| 694 | </layout> | ||
| 695 | </item> | ||
| 696 | <item> | ||
| 697 | <widget class="QLabel" name="eqBand4Label"> | ||
| 698 | <property name="text"> | ||
| 699 | <string>Hz</string> | ||
| 700 | </property> | ||
| 701 | <property name="alignment"> | ||
| 702 | <set>Qt::AlignCenter</set> | ||
| 703 | </property> | ||
| 704 | </widget> | ||
| 705 | </item> | ||
| 706 | </layout> | ||
| 707 | </widget> | ||
| 708 | </item> | ||
| 709 | <item row="0" column="8"> | ||
| 710 | <widget class="QGroupBox" name="eqBand5GroupBox"> | ||
| 711 | <property name="flat"> | ||
| 712 | <bool>true</bool> | ||
| 713 | </property> | ||
| 714 | <layout class="QVBoxLayout" name="verticalLayout_10"> | ||
| 715 | <item> | ||
| 716 | <widget class="QLabel" name="eqBand5Value"> | ||
| 717 | <property name="text"> | ||
| 718 | <string>0</string> | ||
| 719 | </property> | ||
| 720 | <property name="alignment"> | ||
| 721 | <set>Qt::AlignCenter</set> | ||
| 722 | </property> | ||
| 723 | </widget> | ||
| 724 | </item> | ||
| 725 | <item> | ||
| 726 | <layout class="QHBoxLayout" name="eqBand5HLayout"> | ||
| 727 | <item> | ||
| 728 | <widget class="QSlider" name="eqBand5Slider"> | ||
| 729 | <property name="minimum"> | ||
| 730 | <number>-100</number> | ||
| 731 | </property> | ||
| 732 | <property name="maximum"> | ||
| 733 | <number>100</number> | ||
| 734 | </property> | ||
| 735 | <property name="orientation"> | ||
| 736 | <enum>Qt::Vertical</enum> | ||
| 737 | </property> | ||
| 738 | <property name="tickPosition"> | ||
| 739 | <enum>QSlider::TicksAbove</enum> | ||
| 740 | </property> | ||
| 741 | <property name="tickInterval"> | ||
| 742 | <number>20</number> | ||
| 743 | </property> | ||
| 744 | </widget> | ||
| 745 | </item> | ||
| 746 | </layout> | ||
| 747 | </item> | ||
| 748 | <item> | ||
| 749 | <widget class="QLabel" name="eqBand5Label"> | ||
| 750 | <property name="text"> | ||
| 751 | <string>Hz</string> | ||
| 752 | </property> | ||
| 753 | <property name="alignment"> | ||
| 754 | <set>Qt::AlignCenter</set> | ||
| 755 | </property> | ||
| 756 | </widget> | ||
| 757 | </item> | ||
| 758 | </layout> | ||
| 759 | </widget> | ||
| 760 | </item> | ||
| 761 | <item row="0" column="9"> | ||
| 762 | <widget class="QGroupBox" name="eqBand6GroupBox"> | ||
| 763 | <property name="sizePolicy"> | ||
| 764 | <sizepolicy hsizetype="Preferred" vsizetype="Preferred"> | ||
| 765 | <horstretch>0</horstretch> | ||
| 766 | <verstretch>0</verstretch> | ||
| 767 | </sizepolicy> | ||
| 768 | </property> | ||
| 769 | <property name="title"> | ||
| 770 | <string notr="true"/> | ||
| 771 | </property> | ||
| 772 | <property name="flat"> | ||
| 773 | <bool>true</bool> | ||
| 774 | </property> | ||
| 775 | <layout class="QVBoxLayout" name="verticalLayout_11"> | ||
| 776 | <item> | ||
| 777 | <widget class="QLabel" name="eqBand6Value"> | ||
| 778 | <property name="text"> | ||
| 779 | <string>0</string> | ||
| 780 | </property> | ||
| 781 | <property name="alignment"> | ||
| 782 | <set>Qt::AlignCenter</set> | ||
| 783 | </property> | ||
| 784 | </widget> | ||
| 785 | </item> | ||
| 786 | <item> | ||
| 787 | <layout class="QHBoxLayout" name="eqBand6HLayout"> | ||
| 788 | <item> | ||
| 789 | <widget class="QSlider" name="eqBand6Slider"> | ||
| 790 | <property name="minimum"> | ||
| 791 | <number>-100</number> | ||
| 792 | </property> | ||
| 793 | <property name="maximum"> | ||
| 794 | <number>100</number> | ||
| 795 | </property> | ||
| 796 | <property name="orientation"> | ||
| 797 | <enum>Qt::Vertical</enum> | ||
| 798 | </property> | ||
| 799 | <property name="tickPosition"> | ||
| 800 | <enum>QSlider::TicksAbove</enum> | ||
| 801 | </property> | ||
| 802 | <property name="tickInterval"> | ||
| 803 | <number>20</number> | ||
| 804 | </property> | ||
| 805 | </widget> | ||
| 806 | </item> | ||
| 807 | </layout> | ||
| 808 | </item> | ||
| 809 | <item> | ||
| 810 | <widget class="QLabel" name="eqBand6Label"> | ||
| 811 | <property name="text"> | ||
| 812 | <string>Hz</string> | ||
| 813 | </property> | ||
| 814 | <property name="alignment"> | ||
| 815 | <set>Qt::AlignCenter</set> | ||
| 816 | </property> | ||
| 817 | </widget> | ||
| 818 | </item> | ||
| 819 | </layout> | ||
| 820 | </widget> | ||
| 821 | </item> | ||
| 822 | <item row="0" column="10"> | ||
| 823 | <widget class="QGroupBox" name="eqBand7GroupBox"> | ||
| 824 | <property name="title"> | ||
| 825 | <string notr="true"/> | ||
| 826 | </property> | ||
| 827 | <property name="flat"> | ||
| 828 | <bool>true</bool> | ||
| 829 | </property> | ||
| 830 | <layout class="QVBoxLayout" name="verticalLayout_8"> | ||
| 831 | <item> | ||
| 832 | <widget class="QLabel" name="eqBand7Value"> | ||
| 833 | <property name="text"> | ||
| 834 | <string>0</string> | ||
| 835 | </property> | ||
| 836 | <property name="alignment"> | ||
| 837 | <set>Qt::AlignCenter</set> | ||
| 838 | </property> | ||
| 839 | </widget> | ||
| 840 | </item> | ||
| 841 | <item> | ||
| 842 | <layout class="QHBoxLayout" name="eqBand7HLayout"> | ||
| 843 | <item> | ||
| 844 | <widget class="QSlider" name="eqBand7Slider"> | ||
| 845 | <property name="minimum"> | ||
| 846 | <number>-100</number> | ||
| 847 | </property> | ||
| 848 | <property name="maximum"> | ||
| 849 | <number>100</number> | ||
| 850 | </property> | ||
| 851 | <property name="orientation"> | ||
| 852 | <enum>Qt::Vertical</enum> | ||
| 853 | </property> | ||
| 854 | <property name="tickPosition"> | ||
| 855 | <enum>QSlider::TicksAbove</enum> | ||
| 856 | </property> | ||
| 857 | <property name="tickInterval"> | ||
| 858 | <number>20</number> | ||
| 859 | </property> | ||
| 860 | </widget> | ||
| 861 | </item> | ||
| 862 | </layout> | ||
| 863 | </item> | ||
| 864 | <item> | ||
| 865 | <widget class="QLabel" name="eqBand7Label"> | ||
| 866 | <property name="text"> | ||
| 867 | <string>Hz</string> | ||
| 868 | </property> | ||
| 869 | <property name="alignment"> | ||
| 870 | <set>Qt::AlignCenter</set> | ||
| 871 | </property> | ||
| 872 | </widget> | ||
| 873 | </item> | ||
| 874 | </layout> | ||
| 875 | </widget> | ||
| 876 | </item> | ||
| 877 | <item row="0" column="11"> | ||
| 878 | <widget class="QGroupBox" name="eqBand8GroupBox"> | ||
| 879 | <property name="title"> | ||
| 880 | <string notr="true"/> | ||
| 881 | </property> | ||
| 882 | <property name="flat"> | ||
| 883 | <bool>true</bool> | ||
| 884 | </property> | ||
| 885 | <layout class="QVBoxLayout" name="verticalLayout_9"> | ||
| 886 | <item> | ||
| 887 | <widget class="QLabel" name="eqBand8Value"> | ||
| 888 | <property name="text"> | ||
| 889 | <string>0</string> | ||
| 890 | </property> | ||
| 891 | <property name="alignment"> | ||
| 892 | <set>Qt::AlignCenter</set> | ||
| 893 | </property> | ||
| 894 | </widget> | ||
| 895 | </item> | ||
| 896 | <item> | ||
| 897 | <layout class="QHBoxLayout" name="eqBand8HLayout"> | ||
| 898 | <item> | ||
| 899 | <widget class="QSlider" name="eqBand8Slider"> | ||
| 900 | <property name="minimum"> | ||
| 901 | <number>-100</number> | ||
| 902 | </property> | ||
| 903 | <property name="maximum"> | ||
| 904 | <number>100</number> | ||
| 905 | </property> | ||
| 906 | <property name="orientation"> | ||
| 907 | <enum>Qt::Vertical</enum> | ||
| 908 | </property> | ||
| 909 | <property name="tickPosition"> | ||
| 910 | <enum>QSlider::TicksAbove</enum> | ||
| 911 | </property> | ||
| 912 | <property name="tickInterval"> | ||
| 913 | <number>20</number> | ||
| 914 | </property> | ||
| 915 | </widget> | ||
| 916 | </item> | ||
| 917 | </layout> | ||
| 918 | </item> | ||
| 919 | <item> | ||
| 920 | <widget class="QLabel" name="eqBand8Label"> | ||
| 921 | <property name="text"> | ||
| 922 | <string>Hz</string> | ||
| 923 | </property> | ||
| 924 | <property name="alignment"> | ||
| 925 | <set>Qt::AlignCenter</set> | ||
| 926 | </property> | ||
| 927 | </widget> | ||
| 928 | </item> | ||
| 929 | </layout> | ||
| 930 | </widget> | ||
| 931 | </item> | ||
| 932 | <item row="0" column="12"> | ||
| 933 | <widget class="QGroupBox" name="eqBand9GroupBox"> | ||
| 934 | <property name="title"> | ||
| 935 | <string notr="true"/> | ||
| 936 | </property> | ||
| 937 | <property name="flat"> | ||
| 938 | <bool>true</bool> | ||
| 939 | </property> | ||
| 940 | <layout class="QVBoxLayout" name="verticalLayout_12"> | ||
| 941 | <item> | ||
| 942 | <widget class="QLabel" name="eqBand9Value"> | ||
| 943 | <property name="text"> | ||
| 944 | <string>0</string> | ||
| 945 | </property> | ||
| 946 | <property name="alignment"> | ||
| 947 | <set>Qt::AlignCenter</set> | ||
| 948 | </property> | ||
| 949 | </widget> | ||
| 950 | </item> | ||
| 951 | <item> | ||
| 952 | <layout class="QHBoxLayout" name="eqBand9HLayout"> | ||
| 953 | <item> | ||
| 954 | <widget class="QSlider" name="eqBand9Slider"> | ||
| 955 | <property name="minimum"> | ||
| 956 | <number>-100</number> | ||
| 957 | </property> | ||
| 958 | <property name="maximum"> | ||
| 959 | <number>100</number> | ||
| 960 | </property> | ||
| 961 | <property name="orientation"> | ||
| 962 | <enum>Qt::Vertical</enum> | ||
| 963 | </property> | ||
| 964 | <property name="tickPosition"> | ||
| 965 | <enum>QSlider::TicksAbove</enum> | ||
| 966 | </property> | ||
| 967 | <property name="tickInterval"> | ||
| 968 | <number>20</number> | ||
| 969 | </property> | ||
| 970 | </widget> | ||
| 971 | </item> | ||
| 972 | </layout> | ||
| 973 | </item> | ||
| 974 | <item> | ||
| 975 | <widget class="QLabel" name="eqBand9Label"> | ||
| 976 | <property name="text"> | ||
| 977 | <string>Hz</string> | ||
| 978 | </property> | ||
| 979 | <property name="alignment"> | ||
| 980 | <set>Qt::AlignCenter</set> | ||
| 981 | </property> | ||
| 982 | </widget> | ||
| 983 | </item> | ||
| 984 | </layout> | ||
| 985 | </widget> | ||
| 986 | </item> | ||
| 987 | </layout> | ||
| 988 | </widget> | ||
| 989 | </item> | ||
| 990 | </layout> | ||
| 991 | </widget> | ||
| 135 | 992 | </item> | |
| 136 | 993 | </layout> | |
| 137 | 994 | </widget> |

