Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
V
vlc-gpu
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Redmine
Redmine
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Metrics
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
videolan
vlc-gpu
Commits
41c53c38
Commit
41c53c38
authored
Sep 17, 2006
by
Clément Stenac
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Equalizer component
parent
ed5b3247
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
277 additions
and
1 deletion
+277
-1
modules/gui/qt4/Modules.am
modules/gui/qt4/Modules.am
+4
-0
modules/gui/qt4/components/equalizer.cpp
modules/gui/qt4/components/equalizer.cpp
+214
-0
modules/gui/qt4/components/equalizer.hpp
modules/gui/qt4/components/equalizer.hpp
+58
-0
modules/gui/qt4/ui/equalizer.ui
modules/gui/qt4/ui/equalizer.ui
+1
-1
No files found.
modules/gui/qt4/Modules.am
View file @
41c53c38
...
@@ -29,6 +29,7 @@ TOMOC = main_interface \
...
@@ -29,6 +29,7 @@ TOMOC = main_interface \
dialogs/errors
\
dialogs/errors
\
dialogs/streaminfo
\
dialogs/streaminfo
\
dialogs/interaction
\
dialogs/interaction
\
components/equalizer
\
components/infopanels
\
components/infopanels
\
components/preferences_widgets
\
components/preferences_widgets
\
components/preferences
\
components/preferences
\
...
@@ -53,6 +54,7 @@ nodist_SOURCES_qt4 = \
...
@@ -53,6 +54,7 @@ nodist_SOURCES_qt4 = \
dialogs/errors.moc.cpp
\
dialogs/errors.moc.cpp
\
dialogs/prefs_dialog.moc.cpp
\
dialogs/prefs_dialog.moc.cpp
\
dialogs/interaction.moc.cpp
\
dialogs/interaction.moc.cpp
\
components/equalizer.moc.cpp
\
components/infopanels.moc.cpp
\
components/infopanels.moc.cpp
\
components/preferences_widgets.moc.cpp
\
components/preferences_widgets.moc.cpp
\
components/preferences.moc.cpp
\
components/preferences.moc.cpp
\
...
@@ -97,6 +99,7 @@ SOURCES_qt4 = qt4.cpp \
...
@@ -97,6 +99,7 @@ SOURCES_qt4 = qt4.cpp \
dialogs/messages.cpp
\
dialogs/messages.cpp
\
dialogs/errors.cpp
\
dialogs/errors.cpp
\
dialogs/interaction.cpp
\
dialogs/interaction.cpp
\
components/equalizer.cpp
\
components/infopanels.cpp
\
components/infopanels.cpp
\
components/preferences_widgets.cpp
\
components/preferences_widgets.cpp
\
components/preferences.cpp
\
components/preferences.cpp
\
...
@@ -123,6 +126,7 @@ EXTRA_DIST += \
...
@@ -123,6 +126,7 @@ EXTRA_DIST += \
dialogs/errors.hpp
\
dialogs/errors.hpp
\
dialogs/prefs_dialog.hpp
\
dialogs/prefs_dialog.hpp
\
dialogs/interaction.hpp
\
dialogs/interaction.hpp
\
components/equalizer.hpp
\
components/infopanels.hpp
\
components/infopanels.hpp
\
components/preferences_widgets.hpp
\
components/preferences_widgets.hpp
\
components/preferences.hpp
\
components/preferences.hpp
\
...
...
modules/gui/qt4/components/equalizer.cpp
0 → 100644
View file @
41c53c38
/*****************************************************************************
* equalizer.cpp : Equalizer
****************************************************************************
* Copyright (C) 2006 the VideoLAN team
* $Id: preferences.cpp 16643 2006-09-13 12:45:46Z zorglub $
*
* 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 <QLabel>
#include <QVariant>
#include <QString>
#include <QFont>
#include <QGridLayout>
#include "components/equalizer.hpp"
#include "qt4.hpp"
#include "../../audio_filter/equalizer_presets.h"
#include <audio_output.h>
#include <aout_internal.h>
#include <vlc_intf_strings.h>
#include <assert.h>
static
const
QString
band_frequencies
[]
=
{
" 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
)
{
ui
.
setupUi
(
this
);
for
(
int
i
=
0
;
i
<
NB_PRESETS
;
i
++
)
{
ui
.
presetsCombo
->
addItem
(
qfu
(
preset_list_text
[
i
]
),
QVariant
(
i
)
);
}
CONNECT
(
ui
.
presetsCombo
,
activated
(
int
),
this
,
setPreset
(
int
)
);
for
(
int
i
=
0
;
i
<
BANDS
;
i
++
)
{
QGridLayout
*
grid
=
new
QGridLayout
(
this
);
bands
[
i
]
=
new
QSlider
(
Qt
::
Horizontal
,
this
);
bands
[
i
]
->
setMaximum
(
400
);
band_texts
[
i
]
=
new
QLabel
(
band_frequencies
[
i
]
+
"
\n
0.0dB"
);
grid
->
addWidget
(
bands
[
i
],
0
,
i
);
grid
->
addWidget
(
band_texts
[
i
],
1
,
i
);
}
}
Equalizer
::~
Equalizer
()
{
}
void
Equalizer
::
enable
()
{
bool
en
=
ui
.
enableCheck
->
isChecked
();
aout_EnableFilter
(
VLC_OBJECT
(
p_intf
),
"equalizer"
,
en
?
VLC_TRUE
:
VLC_FALSE
);
ui
.
eq2PassCheck
->
setEnabled
(
en
);
ui
.
preampSlider
->
setEnabled
(
en
);
for
(
int
i
=
0
;
i
<
BANDS
;
i
++
)
{
bands
[
i
]
->
setEnabled
(
en
);
band_texts
[
i
]
->
setEnabled
(
en
);
}
}
void
Equalizer
::
set2Pass
()
{
aout_instance_t
*
p_aout
=
(
aout_instance_t
*
)
vlc_object_find
(
p_intf
,
VLC_OBJECT_AOUT
,
FIND_ANYWHERE
);
vlc_bool_t
b_2p
=
ui
.
eq2PassCheck
->
isChecked
();
if
(
p_aout
==
NULL
)
config_PutInt
(
p_intf
,
"equalizer-2pass"
,
b_2p
);
else
{
var_SetBool
(
p_aout
,
"equalizer-2pass"
,
b_2p
);
config_PutInt
(
p_intf
,
"equalizer-2pass"
,
b_2p
);
for
(
int
i
=
0
;
i
<
p_aout
->
i_nb_inputs
;
i
++
)
{
p_aout
->
pp_inputs
[
i
]
->
b_restart
=
VLC_TRUE
;
}
vlc_object_release
(
p_aout
);
}
}
void
Equalizer
::
setPreamp
()
{
float
f
=
(
float
)(
400
-
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
);
sprintf
(
psz_val
,
"%.1f"
,
f
);
ui
.
preampLabel
->
setText
(
qtr
(
"Preamp
\n
"
)
+
psz_val
+
qtr
(
"dB"
)
);
if
(
p_aout
)
{
delCallbacks
(
p_aout
);
var_SetFloat
(
p_aout
,
"equalizer-preamp"
,
f
);
addCallbacks
(
p_aout
);
vlc_object_release
(
p_aout
);
}
config_PutFloat
(
p_intf
,
"equalizer-preamp"
,
f
);
}
void
Equalizer
::
setBand
()
{
char
psz_values
[
102
];
memset
(
psz_values
,
0
,
102
);
/**\todo smoothing */
for
(
int
i
=
0
;
i
<
BANDS
;
i
++
)
{
char
psz_val
[
5
];
float
f_val
=
(
float
)(
400
-
bands
[
i
]
->
value
()
)
/
10
-
20
;
sprintf
(
psz_values
,
"%s %f"
,
psz_values
,
f_val
);
sprintf
(
psz_val
,
"%.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
,
VLC_OBJECT_AOUT
,
FIND_ANYWHERE
);
if
(
p_aout
)
{
delCallbacks
(
p_aout
);
var_SetString
(
p_aout
,
"equalizer-bands"
,
psz_values
);
addCallbacks
(
p_aout
);
vlc_object_release
(
p_aout
);
}
}
void
Equalizer
::
setValues
(
char
*
psz_bands
,
float
f_preamp
)
{
char
*
p
=
psz_bands
;
for
(
int
i
=
0
;
i
<
10
;
i
++
)
{
char
psz_val
[
5
];
float
f
=
strtof
(
p
,
&
p
);
int
i_val
=
(
int
)(
(
f
+
20
)
*
10
);
bands
[
i
]
->
setValue
(
400
-
i_val
);
sprintf
(
psz_val
,
"%.1f"
,
f
);
band_texts
[
i
]
->
setText
(
band_frequencies
[
i
]
+
"
\n
"
+
psz_val
+
"dB"
);
if
(
p
==
NULL
)
break
;
p
++
;
if
(
*
p
==
0
)
break
;
}
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
.
preampLabel
->
setText
(
qtr
(
"Preamp
\n
"
)
+
psz_val
+
qtr
(
"dB"
)
);
}
void
Equalizer
::
setPreset
(
int
preset
)
{
aout_instance_t
*
p_aout
=
(
aout_instance_t
*
)
vlc_object_find
(
p_intf
,
VLC_OBJECT_AOUT
,
FIND_ANYWHERE
);
char
psz_values
[
102
];
memset
(
psz_values
,
0
,
102
);
for
(
int
i
=
0
;
i
<
10
;
i
++
)
sprintf
(
psz_values
,
"%s %.1f"
,
psz_values
,
eqz_preset_10b
[
preset
]
->
f_amp
[
i
]
);
if
(
p_aout
)
{
delCallbacks
(
p_aout
);
var_SetString
(
p_aout
,
"equalizer-bands"
,
psz_values
);
var_SetFloat
(
p_aout
,
"equalizer-preamp"
,
eqz_preset_10b
[
preset
]
->
f_preamp
);
addCallbacks
(
p_aout
);
vlc_object_release
(
p_aout
);
}
config_PutPsz
(
p_intf
,
"equalizer-bands"
,
psz_values
);
config_PutFloat
(
p_intf
,
"equalizer-preamp"
,
eqz_preset_10b
[
preset
]
->
f_preamp
);
setValues
(
psz_values
,
eqz_preset_10b
[
preset
]
->
f_preamp
);
}
void
Equalizer
::
delCallbacks
(
aout_instance_t
*
p_aout
)
{
// var_DelCallback( p_aout, "equalizer-bands", EqzCallback, this );
// var_DelCallback( p_aout, "equalizer-preamp", EqzCallback, this );
}
void
Equalizer
::
addCallbacks
(
aout_instance_t
*
p_aout
)
{
// var_AddCallback( p_aout, "equalizer-bands", EqzCallback, this );
// var_AddCallback( p_aout, "equalizer-preamp", EqzCallback, this );
}
modules/gui/qt4/components/equalizer.hpp
0 → 100644
View file @
41c53c38
/*****************************************************************************
* preferences_tree.hpp : Tree of modules for preferences
****************************************************************************
* Copyright (C) 2006 the VideoLAN team
* $Id: preferences.hpp 16643 2006-09-13 12:45:46Z zorglub $
*
* 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 _EQUALIZER_H_
#define _EQUALIZER_H_
#include <vlc/vlc.h>
#include <vlc/aout.h>
#include "ui/equalizer.h"
#define BANDS 10
class
Equalizer
:
public
QWidget
{
Q_OBJECT
public:
Equalizer
(
intf_thread_t
*
,
QWidget
*
);
virtual
~
Equalizer
();
private:
Ui
::
EqualizerWidget
ui
;
QSlider
*
bands
[
BANDS
];
QLabel
*
band_texts
[
BANDS
];
void
delCallbacks
(
aout_instance_t
*
);
void
addCallbacks
(
aout_instance_t
*
);
void
setValues
(
char
*
,
float
);
intf_thread_t
*
p_intf
;
private
slots
:
void
enable
();
void
set2Pass
();
void
setPreamp
();
void
setBand
();
void
setPreset
(
int
);
};
#endif
modules/gui/qt4/ui/equalizer.ui
View file @
41c53c38
...
@@ -85,7 +85,7 @@
...
@@ -85,7 +85,7 @@
<number>6</number>
<number>6</number>
</property>
</property>
<item row="1" column="0" >
<item row="1" column="0" >
<widget class="QLabel" name="
label_2
" >
<widget class="QLabel" name="
preampLabel
" >
<property name="text" >
<property name="text" >
<string>Preamp</string>
<string>Preamp</string>
</property>
</property>
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment