Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
V
vlc-2-2
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-2-2
Commits
e45f26dd
Commit
e45f26dd
authored
Sep 22, 2006
by
Clément Stenac
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Some cleanup, start integrating audio visualizations
parent
7df78c9f
Changes
5
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
110 additions
and
89 deletions
+110
-89
modules/gui/qt4/components/interface_widgets.cpp
modules/gui/qt4/components/interface_widgets.cpp
+2
-1
modules/gui/qt4/input_manager.hpp
modules/gui/qt4/input_manager.hpp
+2
-0
modules/gui/qt4/main_interface.cpp
modules/gui/qt4/main_interface.cpp
+97
-76
modules/gui/qt4/main_interface.hpp
modules/gui/qt4/main_interface.hpp
+6
-9
modules/gui/qt4/ui/main_interface.ui
modules/gui/qt4/ui/main_interface.ui
+3
-3
No files found.
modules/gui/qt4/components/interface_widgets.cpp
View file @
e45f26dd
...
...
@@ -150,12 +150,13 @@ VisualSelector::VisualSelector( intf_thread_t *_p_i ) :
{
setFrameStyle
(
QFrame
::
StyledPanel
|
QFrame
::
Raised
);
QHBoxLayout
*
layout
=
new
QHBoxLayout
(
this
);
layout
->
setMargin
(
0
);
QPushButton
*
prevButton
=
new
QPushButton
(
"Prev"
);
QPushButton
*
nextButton
=
new
QPushButton
(
"Next"
);
layout
->
addWidget
(
prevButton
);
layout
->
addWidget
(
nextButton
);
setLayout
(
layout
);
setMaximumHeight
(
3
0
);
setMaximumHeight
(
3
5
);
}
VisualSelector
::~
VisualSelector
()
...
...
modules/gui/qt4/input_manager.hpp
View file @
e45f26dd
...
...
@@ -35,6 +35,8 @@ public:
virtual
~
InputManager
();
void
delInput
();
bool
hasAudio
()
{
return
b_has_audio
;
}
bool
hasVideo
()
{
return
b_has_video
;
}
bool
b_has_audio
,
b_has_video
,
b_had_audio
,
b_had_video
;
private:
intf_thread_t
*
p_intf
;
...
...
modules/gui/qt4/main_interface.cpp
View file @
e45f26dd
...
...
@@ -51,6 +51,14 @@
ui.button##Button->setIcon( QIcon( ":/pixmaps/"#image ) ); \
ui.button##Button->setToolTip( tooltip );
#define VISIBLE(i) (i && i->isVisible())
#define SET_WIDTH(i,j) i->widgetSize.setWidth(j)
#define SET_HEIGHT(i,j) i->widgetSize.setHeight(j)
#define SET_WH( i,j,k) i->widgetSize.setWidth(j); i->widgetSize.setHeight(k);
#define DS(i) i.width(),i.height()
static
int
InteractCallback
(
vlc_object_t
*
,
const
char
*
,
vlc_value_t
,
vlc_value_t
,
void
*
);
/* Video handling */
...
...
@@ -110,13 +118,6 @@ MainInterface::MainInterface( intf_thread_t *_p_intf ) : QVLCMW( _p_intf )
CONNECT
(
slider
,
sliderDragged
(
float
),
THEMIM
->
getIM
(),
sliderUpdate
(
float
)
);
/* Actions */
BUTTONACT
(
ui
.
playButton
,
play
()
);
BUTTONACT
(
ui
.
stopButton
,
stop
()
);
BUTTONACT
(
ui
.
nextButton
,
next
()
);
BUTTONACT
(
ui
.
prevButton
,
prev
()
);
BUTTONACT
(
ui
.
playlistButton
,
playlist
()
);
var_Create
(
p_intf
,
"interaction"
,
VLC_VAR_ADDRESS
);
var_AddCallback
(
p_intf
,
"interaction"
,
InteractCallback
,
this
);
p_intf
->
b_interaction
=
VLC_TRUE
;
...
...
@@ -143,28 +144,23 @@ void MainInterface::handleMainUi( QSettings *settings )
ui
.
hboxLayout
->
insertWidget
(
0
,
slider
);
BUTTON_SET
(
prev
,
previous
.
png
,
qtr
(
"Previous"
)
);
BUTTONACT
(
ui
.
prevButton
,
prev
()
);
BUTTON_SET
(
next
,
next
.
png
,
qtr
(
"Next"
)
);
BUTTONACT
(
ui
.
nextButton
,
next
()
);
BUTTON_SET
(
play
,
play
.
png
,
qtr
(
"Play"
)
);
BUTTONACT
(
ui
.
playButton
,
play
()
);
BUTTON_SET
(
stop
,
stop
.
png
,
qtr
(
"Stop"
)
);
ui
.
discFrame
->
setFrameStyle
(
QFrame
::
StyledPanel
|
QFrame
::
Sunken
);
BUTTONACT
(
ui
.
stopButton
,
stop
()
);
#define SET( button, image ) ui.button##Button->setText(""); \
ui.button##Button->setIcon( QIcon( ":/pixmaps/"#image ) );
SET
(
prev
,
previous
.
png
);
SET
(
next
,
next
.
png
);
SET
(
play
,
play
.
png
);
SET
(
stop
,
stop
.
png
);
SET
(
playlist
,
volume
-
low
.
png
);
#undef SET
BUTTON_SET
(
visual
,
stop
.
png
,
qtr
(
"Audio visualizations"
)
);
BUTTONACT
(
ui
.
visualButton
,
visual
()
);
/* Volume */
ui
.
volLowLabel
->
setPixmap
(
QPixmap
(
":/pixmaps/volume-low.png"
)
);
ui
.
volHighLabel
->
setPixmap
(
QPixmap
(
":/pixmaps/volume-high.png"
)
);
ui
.
volMuteLabel
->
setPixmap
(
QPixmap
(
":/pixmaps/volume-low.png"
)
);
ui
.
volumeSlider
->
setMaximum
(
100
);
VolumeClickHandler
*
h
=
new
VolumeClickHandler
(
this
);
ui
.
volLowLabel
->
installEventFilter
(
h
);
ui
.
volHighLabel
->
installEventFilter
(
h
);
ui
.
volMuteLabel
->
setToolTip
(
qtr
(
"Mute"
)
);
VolumeClickHandler
*
h
=
new
VolumeClickHandler
(
p_intf
,
this
);
ui
.
volMuteLabel
->
installEventFilter
(
h
);
ui
.
volumeSlider
->
setFocusPolicy
(
Qt
::
NoFocus
);
/* Fetch configuration from settings and vlc config */
...
...
@@ -172,16 +168,37 @@ void MainInterface::handleMainUi( QSettings *settings )
if
(
config_GetInt
(
p_intf
,
"embedded-video"
)
)
videoEmbeddedFlag
=
true
;
alwaysVideoFlag
=
false
;
if
(
videoEmbeddedFlag
&&
config_GetInt
(
p_intf
,
"qt-always-video"
))
alwaysVideoFlag
=
true
;
playlistEmbeddedFlag
=
true
;
/// \todo fetch playlist settings
BUTTON_SET
(
playlist
,
volume
-
low
.
png
,
playlistEmbeddedFlag
?
qtr
(
"Show playlist"
)
:
qtr
(
"Open playlist"
)
);
BUTTONACT
(
ui
.
playlistButton
,
playlist
()
);
/* Set initial size */
resize
(
PREF_W
,
PREF_H
);
addSize
=
QSize
(
ui
.
vboxLayout
->
margin
()
*
2
,
PREF_H
);
visualSelector
=
new
VisualSelector
(
p_intf
);
ui
.
vboxLayout
->
insertWidget
(
0
,
visualSelector
);
visualSelector
->
hide
();
if
(
alwaysVideoFlag
)
{
bgWidget
=
new
BackgroundWidget
(
p_intf
);
bgWidget
->
widgetSize
=
settings
->
value
(
"backgroundSize"
,
QSize
(
200
,
200
)
).
toSize
();
bgWidget
->
resize
(
bgWidget
->
widgetSize
);
bgWidget
->
updateGeometry
();
ui
.
vboxLayout
->
insertWidget
(
0
,
bgWidget
);
}
if
(
videoEmbeddedFlag
)
{
videoWidget
=
new
VideoWidget
(
p_intf
);
...
...
@@ -192,22 +209,10 @@ void MainInterface::handleMainUi( QSettings *settings )
p_intf
->
pf_request_window
=
::
DoRequest
;
p_intf
->
pf_release_window
=
::
DoRelease
;
p_intf
->
pf_control_window
=
::
DoControl
;
if
(
config_GetInt
(
p_intf
,
"qt-always-video"
))
{
bgWidget
=
new
BackgroundWidget
(
p_intf
);
bgWidget
->
widgetSize
=
settings
->
value
(
"backgroundSize"
,
QSize
(
200
,
200
)
).
toSize
();
ui
.
vboxLayout
->
insertWidget
(
0
,
bgWidget
);
}
}
// visualSelector = new VisualSelector( p_intf );
// visualSelector->hide();
calculateInterfaceSize
();
fprintf
(
stderr
,
"Resize to %ix%i
\n
"
,
mainSize
.
width
(),
mainSize
.
height
()
);
resize
(
mainSize
);
mainSize
=
size
();
setMinimumSize
(
PREF_W
,
addSize
.
height
()
);
}
...
...
@@ -218,14 +223,13 @@ void MainInterface::handleMainUi( QSettings *settings )
void
MainInterface
::
calculateInterfaceSize
()
{
int
width
=
0
,
height
=
0
;
fprintf
(
stderr
,
"Calculating size
\n
"
);
if
(
bgWidget
&&
bgWidget
->
isVisible
()
)
if
(
VISIBLE
(
bgWidget
)
)
{
width
=
bgWidget
->
widgetSize
.
width
();
height
=
bgWidget
->
widgetSize
.
height
();
assert
(
!
(
playlistWidget
&&
playlistWidget
->
isVisible
()
)
);
}
else
if
(
playlistWidget
&&
playlistWidget
->
isVisible
(
)
)
else
if
(
VISIBLE
(
playlistWidget
)
)
{
width
=
playlistWidget
->
widgetSize
.
width
();
height
=
playlistWidget
->
widgetSize
.
height
();
...
...
@@ -235,55 +239,40 @@ void MainInterface::calculateInterfaceSize()
{
width
=
videoWidget
->
widgetSize
.
width
()
;
height
=
videoWidget
->
widgetSize
.
height
();
fprintf
(
stderr
,
"Video Size %ix%i
\n
"
,
videoWidget
->
widgetSize
.
width
(),
videoWidget
->
widgetSize
.
height
(
)
);
fprintf
(
stderr
,
"Video Size %ix%i
\n
"
,
DS
(
videoWidget
->
widgetSize
)
);
}
else
{
width
=
PREF_W
-
addSize
.
width
();
height
=
PREF_H
-
addSize
.
height
();
}
fprintf
(
stderr
,
"Setting to %ix%i
\n
"
,
width
+
addSize
.
width
()
,
height
+
addSize
.
height
()
);
mainSize
.
setWidth
(
width
+
addSize
.
width
()
);
mainSize
.
setHeight
(
height
+
addSize
.
height
()
);
if
(
VISIBLE
(
visualSelector
)
)
height
+=
visualSelector
->
height
();
fprintf
(
stderr
,
"Setting to %ix%i
\n
"
,
width
+
addSize
.
width
()
,
height
+
addSize
.
height
()
);
mainSize
=
QSize
(
width
+
addSize
.
width
(),
height
+
addSize
.
height
()
);
}
void
MainInterface
::
resizeEvent
(
QResizeEvent
*
e
)
{
fprintf
(
stderr
,
"Resize event to %ix%i
\n
"
,
e
->
size
().
width
(),
e
->
size
().
height
()
);
/* Width : Always passed to all children. We are guaranteed it will
* not go below PREF_W
* Height : Only passed to the only visible child
*/
if
(
videoWidget
)
{
videoWidget
->
widgetSize
.
setWidth
(
e
->
size
().
width
()
-
addSize
.
width
()
);
if
(
videoIsActive
&&
videoWidget
->
widgetSize
.
height
()
>
1
)
{
videoWidget
->
widgetSize
.
setHeight
(
e
->
size
().
height
()
-
addSize
.
height
()
);
fprintf
(
stderr
,
"Resize event to %ix%i
\n
"
,
DS
(
e
->
size
()
)
);
videoWidget
->
widgetSize
.
setWidth
(
e
->
size
().
width
()
-
addSize
.
width
()
);
if
(
videoWidget
&&
videoIsActive
&&
videoWidget
->
widgetSize
.
height
()
>
1
)
{
SET_WH
(
videoWidget
,
e
->
size
().
width
()
-
addSize
.
width
(),
e
->
size
().
height
()
-
addSize
.
height
()
);
videoWidget
->
updateGeometry
();
fprintf
(
stderr
,
"Video set to %ix%i
\n
"
,
DS
(
videoWidget
->
widgetSize
)
);
}
fprintf
(
stderr
,
"Video set to %ix%i
\n
"
,
videoWidget
->
widgetSize
.
width
(),
videoWidget
->
widgetSize
.
height
()
);
}
if
(
playlistWidget
)
{
if
(
playlistWidget
->
isVisible
()
)
if
(
VISIBLE
(
playlistWidget
)
)
{
playlistWidget
->
widgetSize
.
setWidth
(
e
->
size
().
width
()
-
addSize
.
width
()
);
playlistWidget
->
widgetSize
.
setHeight
(
e
->
size
().
height
()
-
addSize
.
height
()
);
SET_WH
(
playlistWidget
,
e
->
size
().
width
()
-
addSize
.
width
(),
e
->
size
().
height
()
-
addSize
.
height
()
);
playlistWidget
->
updateGeometry
();
fprintf
(
stderr
,
"PL set to %ix%i
\n
"
,
DS
(
playlistWidget
->
widgetSize
)
);
}
fprintf
(
stderr
,
"Playlist set to %ix%i
\n
"
,
playlistWidget
->
widgetSize
.
width
(),
playlistWidget
->
widgetSize
.
height
()
);
}
// videoWidget->widgetSize.setHeight( e->size().height() - addSize.height() );
// videoWidget->widgetSize.setWidth( e->size().width() - addSize.width() );
// videoWidget->updateGeometry() ;
}
void
*
MainInterface
::
requestVideo
(
vout_thread_t
*
p_nvout
,
int
*
pi_x
,
...
...
@@ -294,16 +283,28 @@ void *MainInterface::requestVideo( vout_thread_t *p_nvout, int *pi_x,
if
(
ret
)
{
videoIsActive
=
true
;
if
(
playlistWidget
&&
playlistWidget
->
isVisible
(
)
)
if
(
VISIBLE
(
playlistWidget
)
)
{
embeddedPlaylistWasActive
=
true
;
playlistWidget
->
hide
();
}
if
(
bgWidget
&&
bgWidget
->
isVisible
()
)
bool
bgWasVisible
=
false
;
if
(
VISIBLE
(
bgWidget
)
)
{
bgWasVisible
=
true
;
bgWidget
->
hide
();
}
if
(
THEMIM
->
getIM
()
->
hasVideo
()
||
!
bgWasVisible
)
{
videoWidget
->
widgetSize
=
QSize
(
*
pi_width
,
*
pi_height
);
}
else
/* Background widget available, use its size */
{
/* Ok, our visualizations are bad, so don't do this for the moment
* use the requested size anyway */
// videoWidget->widgetSize = bgWidget->widgeTSize;
videoWidget
->
widgetSize
=
QSize
(
*
pi_width
,
*
pi_height
);
}
videoWidget
->
updateGeometry
();
/// FIXME: Needed ?
need_components_update
=
true
;
}
...
...
@@ -359,6 +360,25 @@ int MainInterface::controlVideo( void *p_window, int i_query, va_list args )
return
i_ret
;
}
void
MainInterface
::
visual
()
{
if
(
!
VISIBLE
(
visualSelector
)
)
{
visualSelector
->
show
();
if
(
!
THEMIM
->
getIM
()
->
hasVideo
()
)
{
/* Show the background widget */
}
}
else
{
/* Stop any currently running visualization */
visualSelector
->
hide
();
}
calculateInterfaceSize
();
resize
(
mainSize
);
}
void
MainInterface
::
playlist
()
{
// Toggle the playlist dialog
...
...
@@ -382,7 +402,7 @@ void MainInterface::playlist()
playlistWidget
->
hide
();
}
/// Todo, reset its size ?
if
(
playlistWidget
->
isVisible
(
)
)
if
(
VISIBLE
(
playlistWidget
)
)
{
fprintf
(
stderr
,
"hiding playlist
\n
"
);
playlistWidget
->
hide
();
...
...
@@ -404,6 +424,7 @@ void MainInterface::playlist()
videoWidget
->
resize
(
videoWidget
->
widgetSize
);
videoWidget
->
updateGeometry
();
}
if
(
VISIBLE
(
bgWidget
)
)
bgWidget
->
hide
();
}
calculateInterfaceSize
();
...
...
modules/gui/qt4/main_interface.hpp
View file @
e45f26dd
...
...
@@ -49,8 +49,6 @@ class MainInterface : public QVLCMW
public:
MainInterface
(
intf_thread_t
*
);
virtual
~
MainInterface
();
void
*
requestVideo
(
vout_thread_t
*
p_nvout
,
int
*
pi_x
,
int
*
pi_y
,
unsigned
int
*
pi_width
,
unsigned
int
*
pi_height
);
...
...
@@ -80,6 +78,7 @@ private:
bool
playlistEmbeddedFlag
;
bool
videoEmbeddedFlag
;
bool
alwaysVideoFlag
;
InputManager
*
main_input_manager
;
InputSlider
*
slider
;
...
...
@@ -97,6 +96,7 @@ private slots:
void
prev
();
void
next
();
void
playlist
();
void
visual
();
void
updateVolume
(
int
sliderVolume
);
};
...
...
@@ -104,24 +104,21 @@ private slots:
class
VolumeClickHandler
:
public
QObject
{
public:
VolumeClickHandler
(
MainInterface
*
_m
)
:
QObject
(
_m
)
{
m
=
_m
;
}
VolumeClickHandler
(
intf_thread_t
*
_p_intf
,
MainInterface
*
_m
)
:
QObject
(
_m
)
{
m
=
_m
;
p_intf
=
_p_intf
;
}
virtual
~
VolumeClickHandler
()
{};
bool
eventFilter
(
QObject
*
obj
,
QEvent
*
e
)
{
if
(
e
->
type
()
==
QEvent
::
MouseButtonPress
)
{
if
(
obj
->
objectName
()
==
"volLowLabel"
)
{
m
->
ui
.
volumeSlider
->
setValue
(
0
);
}
else
m
->
ui
.
volumeSlider
->
setValue
(
100
);
aout_VolumeMute
(
p_intf
,
NULL
);
return
true
;
}
return
false
;
}
private:
MainInterface
*
m
;
intf_thread_t
*
p_intf
;
};
#endif
modules/gui/qt4/ui/main_interface.ui
View file @
e45f26dd
...
...
@@ -182,7 +182,7 @@
</spacer>
</item>
<item>
<widget class="QLabel" name="vol
Low
Label" >
<widget class="QLabel" name="vol
Mute
Label" >
<property name="text" >
<string/>
</property>
...
...
@@ -210,7 +210,7 @@
</widget>
</item>
<item>
<widget class="Q
Label" name="volHighLabel
" >
<widget class="Q
PushButton" name="visualButton
" >
<property name="text" >
<string/>
</property>
...
...
@@ -219,7 +219,7 @@
<item>
<widget class="QPushButton" name="playlistButton" >
<property name="text" >
<string
> </string
>
<string
/
>
</property>
</widget>
</item>
...
...
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