Commit e69979be authored by Clément Stenac's avatar Clément Stenac

Temporary dialog for the equalizer

parent b372cf28
...@@ -28,6 +28,7 @@ TOMOC = main_interface \ ...@@ -28,6 +28,7 @@ TOMOC = main_interface \
dialogs/messages \ dialogs/messages \
dialogs/errors \ dialogs/errors \
dialogs/streaminfo \ dialogs/streaminfo \
dialogs/extended \
dialogs/interaction \ dialogs/interaction \
components/equalizer \ components/equalizer \
components/infopanels \ components/infopanels \
...@@ -50,6 +51,7 @@ nodist_SOURCES_qt4 = \ ...@@ -50,6 +51,7 @@ nodist_SOURCES_qt4 = \
playlist_model.moc.cpp \ playlist_model.moc.cpp \
dialogs/playlist.moc.cpp \ dialogs/playlist.moc.cpp \
dialogs/streaminfo.moc.cpp \ dialogs/streaminfo.moc.cpp \
dialogs/extended.moc.cpp \
dialogs/messages.moc.cpp \ dialogs/messages.moc.cpp \
dialogs/errors.moc.cpp \ dialogs/errors.moc.cpp \
dialogs/prefs_dialog.moc.cpp \ dialogs/prefs_dialog.moc.cpp \
...@@ -96,6 +98,7 @@ SOURCES_qt4 = qt4.cpp \ ...@@ -96,6 +98,7 @@ SOURCES_qt4 = qt4.cpp \
dialogs/playlist.cpp \ dialogs/playlist.cpp \
dialogs/prefs_dialog.cpp \ dialogs/prefs_dialog.cpp \
dialogs/streaminfo.cpp \ dialogs/streaminfo.cpp \
dialogs/extended.cpp \
dialogs/messages.cpp \ dialogs/messages.cpp \
dialogs/errors.cpp \ dialogs/errors.cpp \
dialogs/interaction.cpp \ dialogs/interaction.cpp \
...@@ -122,6 +125,7 @@ EXTRA_DIST += \ ...@@ -122,6 +125,7 @@ EXTRA_DIST += \
res.qrc \ res.qrc \
dialogs/playlist.hpp \ dialogs/playlist.hpp \
dialogs/streaminfo.hpp \ dialogs/streaminfo.hpp \
dialogs/extended.hpp \
dialogs/messages.hpp \ dialogs/messages.hpp \
dialogs/errors.hpp \ dialogs/errors.hpp \
dialogs/prefs_dialog.hpp \ dialogs/prefs_dialog.hpp \
......
...@@ -38,15 +38,20 @@ ...@@ -38,15 +38,20 @@
static const QString band_frequencies[] = static const QString band_frequencies[] =
{ {
" 60Hz", "170 Hz", "310 Hz", "600 Hz", " 1 kHz", " 60Hz ", " 170 Hz " , " 310 Hz ", " 600 Hz ", " 1 kHz ",
" 3 kHz", " 6 kHz", "12 kHz", "14 kHz", "16 kHz" " 3 kHz " , " 6 kHz ", " 12 kHz ", " 14 kHz ", " 16 kHz "
}; };
Equalizer::Equalizer( intf_thread_t *_p_intf, QWidget *_parent ) : Equalizer::Equalizer( intf_thread_t *_p_intf, QWidget *_parent ) :
QWidget( _parent ) , p_intf( _p_intf ) QWidget( _parent ) , p_intf( _p_intf )
{ {
QFont smallFont = QApplication::font(0);
smallFont.setPointSize( smallFont.pointSize() - 3 );
ui.setupUi( this ); ui.setupUi( this );
ui.preampLabel->setFont( smallFont );
ui.preampSlider->setMaximum( 400 );
for( int i = 0 ; i < NB_PRESETS ; i ++ ) for( int i = 0 ; i < NB_PRESETS ; i ++ )
{ {
ui.presetsCombo->addItem( qfu( preset_list_text[i] ), ui.presetsCombo->addItem( qfu( preset_list_text[i] ),
...@@ -54,17 +59,52 @@ Equalizer::Equalizer( intf_thread_t *_p_intf, QWidget *_parent ) : ...@@ -54,17 +59,52 @@ Equalizer::Equalizer( intf_thread_t *_p_intf, QWidget *_parent ) :
} }
CONNECT( ui.presetsCombo, activated( int ), this, setPreset( int ) ); 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++ ) for( int i = 0 ; i < BANDS ; i++ )
{ {
QGridLayout *grid = new QGridLayout( this ); bands[i] = new QSlider( Qt::Vertical );
bands[i] = new QSlider( Qt::Horizontal, this );
bands[i]->setMaximum( 400 ); bands[i]->setMaximum( 400 );
CONNECT( bands[i], valueChanged(int), this, setBand() );
band_texts[i] = new QLabel( band_frequencies[i] + "\n0.0dB" ); band_texts[i] = new QLabel( band_frequencies[i] + "\n0.0dB" );
band_texts[i]->setFont( smallFont );
grid->addWidget( bands[i], 0, i ); grid->addWidget( bands[i], 0, i );
grid->addWidget( band_texts[i], 1, 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() Equalizer::~Equalizer()
...@@ -76,8 +116,13 @@ void Equalizer::enable() ...@@ -76,8 +116,13 @@ void Equalizer::enable()
bool en = ui.enableCheck->isChecked(); bool en = ui.enableCheck->isChecked();
aout_EnableFilter( VLC_OBJECT( p_intf ), "equalizer", aout_EnableFilter( VLC_OBJECT( p_intf ), "equalizer",
en ? VLC_TRUE : VLC_FALSE ); en ? VLC_TRUE : VLC_FALSE );
enable( en );
}
void Equalizer::enable( bool en )
{
ui.eq2PassCheck->setEnabled( en ); ui.eq2PassCheck->setEnabled( en );
ui.preampLabel->setEnabled( en );
ui.preampSlider->setEnabled( en ); ui.preampSlider->setEnabled( en );
for( int i = 0 ; i< BANDS; i++ ) for( int i = 0 ; i< BANDS; i++ )
{ {
...@@ -107,7 +152,7 @@ void Equalizer::set2Pass() ...@@ -107,7 +152,7 @@ void Equalizer::set2Pass()
void Equalizer::setPreamp() void Equalizer::setPreamp()
{ {
float f= (float)( 400 - ui.preampSlider->value() ) /10 - 20; float f= (float)( ui.preampSlider->value() ) /10 - 20;
char psz_val[5]; char psz_val[5];
aout_instance_t *p_aout= (aout_instance_t *)vlc_object_find(p_intf, aout_instance_t *p_aout= (aout_instance_t *)vlc_object_find(p_intf,
VLC_OBJECT_AOUT, FIND_ANYWHERE); VLC_OBJECT_AOUT, FIND_ANYWHERE);
...@@ -133,9 +178,9 @@ void Equalizer::setBand() ...@@ -133,9 +178,9 @@ void Equalizer::setBand()
for( int i = 0 ; i< BANDS ; i++ ) for( int i = 0 ; i< BANDS ; i++ )
{ {
char psz_val[5]; 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_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" ); band_texts[i]->setText( band_frequencies[i] + "\n" + psz_val + "dB" );
} }
aout_instance_t *p_aout= (aout_instance_t *)vlc_object_find(p_intf, 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 ) ...@@ -157,9 +202,9 @@ void Equalizer::setValues( char *psz_bands, float f_preamp )
float f = strtof( p, &p ); float f = strtof( p, &p );
int i_val= (int)( ( f + 20 ) * 10 ); 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" ); band_texts[i]->setText( band_frequencies[i] + "\n" + psz_val + "dB" );
if( p == NULL ) break; if( p == NULL ) break;
...@@ -169,7 +214,7 @@ void Equalizer::setValues( char *psz_bands, float f_preamp ) ...@@ -169,7 +214,7 @@ void Equalizer::setValues( char *psz_bands, float f_preamp )
char psz_val[5]; char psz_val[5];
int i_val = (int)( ( f_preamp + 20 ) * 10 ); int i_val = (int)( ( f_preamp + 20 ) * 10 );
sprintf( psz_val, "%.1f", f_preamp ); 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") ); ui.preampLabel->setText( qtr("Preamp\n") + psz_val + qtr("dB") );
} }
...@@ -210,5 +255,3 @@ void Equalizer::addCallbacks( aout_instance_t *p_aout ) ...@@ -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-bands", EqzCallback, this );
// var_AddCallback( p_aout, "equalizer-preamp", EqzCallback, this ); // var_AddCallback( p_aout, "equalizer-preamp", EqzCallback, this );
} }
...@@ -48,6 +48,7 @@ private: ...@@ -48,6 +48,7 @@ private:
intf_thread_t *p_intf; intf_thread_t *p_intf;
private slots: private slots:
void enable(bool);
void enable(); void enable();
void set2Pass(); void set2Pass();
void setPreamp(); 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 @@ ...@@ -35,6 +35,7 @@
#include "dialogs/prefs_dialog.hpp" #include "dialogs/prefs_dialog.hpp"
#include "dialogs/streaminfo.hpp" #include "dialogs/streaminfo.hpp"
#include "dialogs/messages.hpp" #include "dialogs/messages.hpp"
#include "dialogs/extended.hpp"
DialogsProvider* DialogsProvider::instance = NULL; DialogsProvider* DialogsProvider::instance = NULL;
...@@ -164,6 +165,10 @@ void DialogsProvider::prefsDialog() ...@@ -164,6 +165,10 @@ void DialogsProvider::prefsDialog()
{ {
PrefsDialog::getInstance( p_intf )->toggleVisible(); PrefsDialog::getInstance( p_intf )->toggleVisible();
} }
void DialogsProvider::extendedDialog()
{
ExtendedDialog::getInstance( p_intf )->toggleVisible();
}
void DialogsProvider::messagesDialog() void DialogsProvider::messagesDialog()
{ {
......
...@@ -71,6 +71,7 @@ public slots: ...@@ -71,6 +71,7 @@ public slots:
void bookmarksDialog(); void bookmarksDialog();
void streaminfoDialog(); void streaminfoDialog();
void prefsDialog(); void prefsDialog();
void extendedDialog();
void messagesDialog(); void messagesDialog();
void simplePLAppendDialog(); void simplePLAppendDialog();
void simpleMLAppendDialog(); void simpleMLAppendDialog();
......
...@@ -224,6 +224,7 @@ static int ChangeAudio( vlc_object_t *p_this, const char *var, vlc_value_t o, ...@@ -224,6 +224,7 @@ static int ChangeAudio( vlc_object_t *p_this, const char *var, vlc_value_t o,
{ {
InputManager *im = (InputManager*)param; InputManager *im = (InputManager*)param;
im->b_has_audio = true; im->b_has_audio = true;
return 0;
} }
static int ChangeVideo( vlc_object_t *p_this, const char *var, vlc_value_t o, 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, ...@@ -231,4 +232,5 @@ static int ChangeVideo( vlc_object_t *p_this, const char *var, vlc_value_t o,
{ {
InputManager *im = (InputManager*)param; InputManager *im = (InputManager*)param;
im->b_has_video = true; im->b_has_video = true;
return 0;
} }
...@@ -155,6 +155,7 @@ QMenu *QVLCMenu::ToolsMenu( intf_thread_t *p_intf, bool with_intf ) ...@@ -155,6 +155,7 @@ QMenu *QVLCMenu::ToolsMenu( intf_thread_t *p_intf, bool with_intf )
DP_SADD( qtr("Bookmarks"), "", "", bookmarksDialog() ); DP_SADD( qtr("Bookmarks"), "", "", bookmarksDialog() );
menu->addSeparator(); menu->addSeparator();
DP_SADD( qtr("Preferences"), "", "", prefsDialog() ); DP_SADD( qtr("Preferences"), "", "", prefsDialog() );
DP_SADD( qtr("Extended"), "","",extendedDialog() );
return menu; return menu;
} }
......
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