Commit e69979be authored by zorglub's avatar zorglub
Browse files

Temporary dialog for the equalizer

parent b372cf28
......@@ -28,6 +28,7 @@ TOMOC = main_interface \
dialogs/messages \
dialogs/errors \
dialogs/streaminfo \
dialogs/extended \
dialogs/interaction \
components/equalizer \
components/infopanels \
......@@ -50,6 +51,7 @@ nodist_SOURCES_qt4 = \
playlist_model.moc.cpp \
dialogs/playlist.moc.cpp \
dialogs/streaminfo.moc.cpp \
dialogs/extended.moc.cpp \
dialogs/messages.moc.cpp \
dialogs/errors.moc.cpp \
dialogs/prefs_dialog.moc.cpp \
......@@ -96,6 +98,7 @@ SOURCES_qt4 = qt4.cpp \
dialogs/playlist.cpp \
dialogs/prefs_dialog.cpp \
dialogs/streaminfo.cpp \
dialogs/extended.cpp \
dialogs/messages.cpp \
dialogs/errors.cpp \
dialogs/interaction.cpp \
......@@ -122,6 +125,7 @@ EXTRA_DIST += \
res.qrc \
dialogs/playlist.hpp \
dialogs/streaminfo.hpp \
dialogs/extended.hpp \
dialogs/messages.hpp \
dialogs/errors.hpp \
dialogs/prefs_dialog.hpp \
......
......@@ -38,15 +38,20 @@
static const QString band_frequencies[] =
{
" 60Hz", "170 Hz", "310 Hz", "600 Hz", " 1 kHz",
" 3 kHz", " 6 kHz", "12 kHz", "14 kHz", "16 kHz"
" 60Hz ", " 170 Hz " , " 310 Hz ", " 600 Hz ", " 1 kHz ",
" 3 kHz " , " 6 kHz ", " 12 kHz ", " 14 kHz ", " 16 kHz "
};
Equalizer::Equalizer( intf_thread_t *_p_intf, QWidget *_parent ) :
QWidget( _parent ) , p_intf( _p_intf )
{
QFont smallFont = QApplication::font(0);
smallFont.setPointSize( smallFont.pointSize() - 3 );
ui.setupUi( this );
ui.preampLabel->setFont( smallFont );
ui.preampSlider->setMaximum( 400 );
for( int i = 0 ; i < NB_PRESETS ; i ++ )
{
ui.presetsCombo->addItem( qfu( preset_list_text[i] ),
......@@ -54,17 +59,52 @@ Equalizer::Equalizer( intf_thread_t *_p_intf, QWidget *_parent ) :
}
CONNECT( ui.presetsCombo, activated( int ), this, setPreset( int ) );
BUTTONACT( ui.enableCheck, enable() );
BUTTONACT( ui.eq2PassCheck, set2Pass() );
CONNECT( ui.preampSlider, valueChanged(int), this, setPreamp() );
QGridLayout *grid = new QGridLayout( ui.frame );
grid->setMargin( 0 );
for( int i = 0 ; i < BANDS ; i++ )
{
QGridLayout *grid = new QGridLayout( this );
bands[i] = new QSlider( Qt::Horizontal, this );
bands[i] = new QSlider( Qt::Vertical );
bands[i]->setMaximum( 400 );
CONNECT( bands[i], valueChanged(int), this, setBand() );
band_texts[i] = new QLabel( band_frequencies[i] + "\n0.0dB" );
band_texts[i]->setFont( smallFont );
grid->addWidget( bands[i], 0, i );
grid->addWidget( band_texts[i], 1, i );
}
/* Write down initial values */
aout_instance_t *p_aout = (aout_instance_t *)vlc_object_find(p_intf,
VLC_OBJECT_AOUT, FIND_ANYWHERE);
char *psz_af = NULL;
char *psz_bands;
float f_preamp;
if( p_aout )
{
psz_af = var_GetString( p_aout, "audio-filter" );
if( var_GetBool( p_aout, "equalizer-2pass" ) )
ui.eq2PassCheck->setChecked( true );
psz_bands = var_GetString( p_aout, "equalizer-bands" );
f_preamp = var_GetFloat( p_aout, "equalizer-preamp" );
vlc_object_release( p_aout );
}
else
{
psz_af = config_GetPsz( p_intf, "audio-filter" );
if( config_GetInt( p_intf, "equalizer-2pass" ) )
ui.eq2PassCheck->setChecked( true );
psz_bands = config_GetPsz( p_intf, "equalizer-bands" );
f_preamp = config_GetFloat( p_intf, "equalizer-preamp" );
}
if( psz_af && strstr( psz_af, "equalizer" ) != NULL )
ui.enableCheck->setChecked( true );
enable( ui.enableCheck->isChecked() );
setValues( psz_bands, f_preamp );
}
Equalizer::~Equalizer()
......@@ -76,8 +116,13 @@ void Equalizer::enable()
bool en = ui.enableCheck->isChecked();
aout_EnableFilter( VLC_OBJECT( p_intf ), "equalizer",
en ? VLC_TRUE : VLC_FALSE );
enable( en );
}
void Equalizer::enable( bool en )
{
ui.eq2PassCheck->setEnabled( en );
ui.preampLabel->setEnabled( en );
ui.preampSlider->setEnabled( en );
for( int i = 0 ; i< BANDS; i++ )
{
......@@ -107,7 +152,7 @@ void Equalizer::set2Pass()
void Equalizer::setPreamp()
{
float f= (float)( 400 - ui.preampSlider->value() ) /10 - 20;
float f= (float)( ui.preampSlider->value() ) /10 - 20;
char psz_val[5];
aout_instance_t *p_aout= (aout_instance_t *)vlc_object_find(p_intf,
VLC_OBJECT_AOUT, FIND_ANYWHERE);
......@@ -133,9 +178,9 @@ void Equalizer::setBand()
for( int i = 0 ; i< BANDS ; i++ )
{
char psz_val[5];
float f_val = (float)( 400 - bands[i]->value() ) / 10 - 20 ;
float f_val = (float)( bands[i]->value() ) / 10 - 20 ;
sprintf( psz_values, "%s %f", psz_values, f_val );
sprintf( psz_val, "%.1f", f_val );
sprintf( psz_val, "% 5.1f", f_val );
band_texts[i]->setText( band_frequencies[i] + "\n" + psz_val + "dB" );
}
aout_instance_t *p_aout= (aout_instance_t *)vlc_object_find(p_intf,
......@@ -157,9 +202,9 @@ void Equalizer::setValues( char *psz_bands, float f_preamp )
float f = strtof( p, &p );
int i_val= (int)( ( f + 20 ) * 10 );
bands[i]->setValue( 400 - i_val );
bands[i]->setValue( i_val );
sprintf( psz_val, "%.1f", f );
sprintf( psz_val, "% 5.1f", f );
band_texts[i]->setText( band_frequencies[i] + "\n" + psz_val + "dB" );
if( p == NULL ) break;
......@@ -169,7 +214,7 @@ void Equalizer::setValues( char *psz_bands, float f_preamp )
char psz_val[5];
int i_val = (int)( ( f_preamp + 20 ) * 10 );
sprintf( psz_val, "%.1f", f_preamp );
ui.preampSlider->setValue( 400 - i_val );
ui.preampSlider->setValue( i_val );
ui.preampLabel->setText( qtr("Preamp\n") + psz_val + qtr("dB") );
}
......@@ -210,5 +255,3 @@ void Equalizer::addCallbacks( aout_instance_t *p_aout )
// var_AddCallback( p_aout, "equalizer-bands", EqzCallback, this );
// var_AddCallback( p_aout, "equalizer-preamp", EqzCallback, this );
}
......@@ -48,6 +48,7 @@ private:
intf_thread_t *p_intf;
private slots:
void enable(bool);
void enable();
void set2Pass();
void setPreamp();
......
/*****************************************************************************
* extended.cpp : Extended controls - Undocked
****************************************************************************
* Copyright (C) 2006 the VideoLAN team
* $Id: streaminfo.cpp 16687 2006-09-17 12:15:42Z jb $
*
* Authors: Clément Stenac <zorglub@videolan.org>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA. *****************************************************************************/
#include <QTabWidget>
#include <QBoxLayout>
#include "dialogs/extended.hpp"
#include "dialogs_provider.hpp"
#include "util/qvlcframe.hpp"
#include "components/equalizer.hpp"
#include "qt4.hpp"
ExtendedDialog *ExtendedDialog::instance = NULL;
ExtendedDialog::ExtendedDialog( intf_thread_t *_p_intf ): QVLCFrame( _p_intf )
{
setWindowTitle( _("Extended controls" ) );
QHBoxLayout *layout = new QHBoxLayout( this );
Equalizer *foo = new Equalizer( p_intf, this );
layout->addWidget( foo );
setLayout( layout );
}
ExtendedDialog::~ExtendedDialog()
{
}
/*****************************************************************************
* extended.hpp : Extended controls - Undocked
****************************************************************************
* Copyright (C) 2006 the VideoLAN team
* $Id: streaminfo.hpp 16687 2006-09-17 12:15:42Z jb $
*
* Authors: Clément Stenac <zorglub@videolan.org>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program 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 General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA. *****************************************************************************/
#ifndef _EXTENDED_DIALOG_H_
#define _EXTENDED_DIALOG_H_
#include "util/qvlcframe.hpp"
#include <QHBoxLayout>
class ExtendedDialog : public QVLCFrame
{
Q_OBJECT;
public:
static ExtendedDialog * getInstance( intf_thread_t *p_intf )
{
if( !instance)
instance = new ExtendedDialog( p_intf );
return instance;
}
virtual ~ExtendedDialog();
private:
ExtendedDialog( intf_thread_t * );
static ExtendedDialog *instance;
public slots:
};
#endif
......@@ -35,6 +35,7 @@
#include "dialogs/prefs_dialog.hpp"
#include "dialogs/streaminfo.hpp"
#include "dialogs/messages.hpp"
#include "dialogs/extended.hpp"
DialogsProvider* DialogsProvider::instance = NULL;
......@@ -164,6 +165,10 @@ void DialogsProvider::prefsDialog()
{
PrefsDialog::getInstance( p_intf )->toggleVisible();
}
void DialogsProvider::extendedDialog()
{
ExtendedDialog::getInstance( p_intf )->toggleVisible();
}
void DialogsProvider::messagesDialog()
{
......
......@@ -71,6 +71,7 @@ public slots:
void bookmarksDialog();
void streaminfoDialog();
void prefsDialog();
void extendedDialog();
void messagesDialog();
void simplePLAppendDialog();
void simpleMLAppendDialog();
......
......@@ -224,6 +224,7 @@ static int ChangeAudio( vlc_object_t *p_this, const char *var, vlc_value_t o,
{
InputManager *im = (InputManager*)param;
im->b_has_audio = true;
return 0;
}
static int ChangeVideo( vlc_object_t *p_this, const char *var, vlc_value_t o,
......@@ -231,4 +232,5 @@ static int ChangeVideo( vlc_object_t *p_this, const char *var, vlc_value_t o,
{
InputManager *im = (InputManager*)param;
im->b_has_video = true;
return 0;
}
......@@ -155,6 +155,7 @@ QMenu *QVLCMenu::ToolsMenu( intf_thread_t *p_intf, bool with_intf )
DP_SADD( qtr("Bookmarks"), "", "", bookmarksDialog() );
menu->addSeparator();
DP_SADD( qtr("Preferences"), "", "", prefsDialog() );
DP_SADD( qtr("Extended"), "","",extendedDialog() );
return menu;
}
......
......@@ -95,7 +95,7 @@
<widget class="QSlider" name="preampSlider" >
<property name="orientation" >
<enum>Qt::Vertical</enum>
</property>
</property>
</widget>
</item>
<item rowspan="2" row="0" column="1" >
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment