Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
Steve Lhomme
VLC
Commits
c36f6582
Commit
c36f6582
authored
May 30, 2007
by
Jean-Paul Saman
Browse files
Fix memleaks and some cleanup.
parent
ddada0ed
Changes
2
Hide whitespace changes
Inline
Side-by-side
src/osd/osd.c
View file @
c36f6582
...
...
@@ -65,7 +65,8 @@ osd_menu_t *__osd_MenuCreate( vlc_object_t *p_this, const char *psz_file )
var_Get
(
p_this
->
p_libvlc
,
"osd_mutex"
,
&
lockval
);
vlc_mutex_lock
(
lockval
.
p_address
);
if
(
(
p_osd
=
vlc_object_find
(
p_this
,
VLC_OBJECT_OSDMENU
,
FIND_ANYWHERE
)
)
==
NULL
)
p_osd
=
vlc_object_find
(
p_this
,
VLC_OBJECT_OSDMENU
,
FIND_ANYWHERE
);
if
(
p_osd
==
NULL
)
{
vlc_value_t
val
;
...
...
@@ -88,11 +89,14 @@ osd_menu_t *__osd_MenuCreate( vlc_object_t *p_this, const char *psz_file )
p_osd
->
i_width
=
p_osd
->
p_state
->
p_visible
->
p_current_state
->
p_pic
->
p
[
Y_PLANE
].
i_visible_pitch
;
p_osd
->
i_height
=
p_osd
->
p_state
->
p_visible
->
p_current_state
->
p_pic
->
p
[
Y_PLANE
].
i_visible_lines
;
/* Update the volume state images to match the current volume */
i_volume
=
config_GetInt
(
p_this
,
"volume"
);
i_steps
=
osd_VolumeStep
(
p_this
,
i_volume
,
p_osd
->
p_state
->
p_volume
->
i_ranges
);
p_osd
->
p_state
->
p_volume
->
p_current_state
=
osd_VolumeStateChange
(
p_osd
->
p_state
->
p_volume
->
p_states
,
i_steps
);
if
(
p_osd
->
p_state
->
p_volume
)
{
/* Update the volume state images to match the current volume */
i_volume
=
config_GetInt
(
p_this
,
"volume"
);
i_steps
=
osd_VolumeStep
(
p_this
,
i_volume
,
p_osd
->
p_state
->
p_volume
->
i_ranges
);
p_osd
->
p_state
->
p_volume
->
p_current_state
=
osd_VolumeStateChange
(
p_osd
->
p_state
->
p_volume
->
p_states
,
i_steps
);
}
/* Initialize OSD state */
osd_UpdateState
(
p_osd
->
p_state
,
p_osd
->
i_x
,
p_osd
->
i_y
,
p_osd
->
i_width
,
p_osd
->
i_height
,
NULL
);
...
...
@@ -198,7 +202,8 @@ void __osd_MenuShow( vlc_object_t *p_this )
osd_button_t
*
p_button
=
NULL
;
vlc_value_t
lockval
;
if
(
(
p_osd
=
vlc_object_find
(
p_this
,
VLC_OBJECT_OSDMENU
,
FIND_ANYWHERE
)
)
==
NULL
)
p_osd
=
vlc_object_find
(
p_this
,
VLC_OBJECT_OSDMENU
,
FIND_ANYWHERE
);
if
(
p_osd
==
NULL
)
{
msg_Err
(
p_this
,
"osd_MenuNext failed"
);
return
;
...
...
@@ -239,7 +244,8 @@ void __osd_MenuHide( vlc_object_t *p_this )
osd_menu_t
*
p_osd
=
NULL
;
vlc_value_t
lockval
;
if
(
(
p_osd
=
vlc_object_find
(
p_this
,
VLC_OBJECT_OSDMENU
,
FIND_ANYWHERE
)
)
==
NULL
)
p_osd
=
vlc_object_find
(
p_this
,
VLC_OBJECT_OSDMENU
,
FIND_ANYWHERE
);
if
(
p_osd
==
NULL
)
{
msg_Err
(
p_this
,
"osd_MenuNext failed"
);
return
;
...
...
@@ -266,7 +272,8 @@ void __osd_MenuActivate( vlc_object_t *p_this )
osd_button_t
*
p_button
=
NULL
;
vlc_value_t
lockval
;
if
(
(
p_osd
=
vlc_object_find
(
p_this
,
VLC_OBJECT_OSDMENU
,
FIND_ANYWHERE
)
)
==
NULL
)
p_osd
=
vlc_object_find
(
p_this
,
VLC_OBJECT_OSDMENU
,
FIND_ANYWHERE
);
if
(
p_osd
==
NULL
)
{
msg_Err
(
p_this
,
"osd_MenuNext failed"
);
return
;
...
...
@@ -328,7 +335,8 @@ void __osd_MenuNext( vlc_object_t *p_this )
osd_button_t
*
p_button
=
NULL
;
vlc_value_t
lockval
;
if
(
(
p_osd
=
vlc_object_find
(
p_this
,
VLC_OBJECT_OSDMENU
,
FIND_ANYWHERE
)
)
==
NULL
)
p_osd
=
vlc_object_find
(
p_this
,
VLC_OBJECT_OSDMENU
,
FIND_ANYWHERE
);
if
(
p_osd
==
NULL
)
{
msg_Err
(
p_this
,
"osd_MenuNext failed"
);
return
;
...
...
@@ -378,7 +386,8 @@ void __osd_MenuPrev( vlc_object_t *p_this )
osd_button_t
*
p_button
=
NULL
;
vlc_value_t
lockval
;
if
(
(
p_osd
=
vlc_object_find
(
p_this
,
VLC_OBJECT_OSDMENU
,
FIND_ANYWHERE
)
)
==
NULL
)
p_osd
=
vlc_object_find
(
p_this
,
VLC_OBJECT_OSDMENU
,
FIND_ANYWHERE
);
if
(
p_osd
==
NULL
)
{
msg_Err
(
p_this
,
"osd_MenuPrev failed"
);
return
;
...
...
@@ -430,8 +439,8 @@ void __osd_MenuUp( vlc_object_t *p_this )
#if defined(OSD_MENU_DEBUG)
vlc_value_t
val
;
#endif
if
(
(
p_osd
=
vlc_object_find
(
p_this
,
VLC_OBJECT_OSDMENU
,
FIND_ANYWHERE
)
)
==
NULL
)
p_osd
=
vlc_object_find
(
p_this
,
VLC_OBJECT_OSDMENU
,
FIND_ANYWHERE
);
if
(
p_osd
==
NULL
)
{
msg_Err
(
p_this
,
"osd_MenuDown failed"
);
return
;
...
...
@@ -502,7 +511,8 @@ void __osd_MenuDown( vlc_object_t *p_this )
vlc_value_t
val
;
#endif
if
(
(
p_osd
=
vlc_object_find
(
p_this
,
VLC_OBJECT_OSDMENU
,
FIND_ANYWHERE
)
)
==
NULL
)
p_osd
=
vlc_object_find
(
p_this
,
VLC_OBJECT_OSDMENU
,
FIND_ANYWHERE
);
if
(
p_osd
==
NULL
)
{
msg_Err
(
p_this
,
"osd_MenuDown failed"
);
return
;
...
...
@@ -587,33 +597,37 @@ void __osd_Volume( vlc_object_t *p_this )
int
i_volume
=
0
;
int
i_steps
=
0
;
if
(
(
p_osd
=
vlc_object_find
(
p_this
,
VLC_OBJECT_OSDMENU
,
FIND_ANYWHERE
)
)
==
NULL
)
p_osd
=
vlc_object_find
(
p_this
,
VLC_OBJECT_OSDMENU
,
FIND_ANYWHERE
);
if
(
p_osd
==
NULL
)
{
msg_Err
(
p_this
,
"OSD menu volume update failed"
);
return
;
}
var_Get
(
p_this
->
p_libvlc
,
"osd_mutex"
,
&
lockval
);
vlc_mutex_lock
(
lockval
.
p_address
);
p_button
=
p_osd
->
p_state
->
p_volume
;
if
(
p_osd
->
p_state
->
p_volume
)
p_osd
->
p_state
->
p_visible
=
p_osd
->
p_state
->
p_volume
;
if
(
p_button
&&
p_button
->
b_range
)
if
(
p_osd
->
p_state
&&
p_osd
->
p_state
->
p_volume
)
{
/* Update the volume state images to match the current volume */
i_volume
=
config_GetInt
(
p_this
,
"volume"
);
i_steps
=
osd_VolumeStep
(
p_this
,
i_volume
,
p_button
->
i_ranges
);
p_button
->
p_current_state
=
osd_VolumeStateChange
(
p_button
->
p_states
,
i_steps
);
var_Get
(
p_this
->
p_libvlc
,
"osd_mutex"
,
&
lockval
);
vlc_mutex_lock
(
lockval
.
p_address
);
osd_UpdateState
(
p_osd
->
p_state
,
p_button
->
i_x
,
p_button
->
i_y
,
p_button
->
p_current_state
->
p_pic
->
p
[
Y_PLANE
].
i_visible_pitch
,
p_button
->
p_current_state
->
p_pic
->
p
[
Y_PLANE
].
i_visible_lines
,
p_button
->
p_current_state
->
p_pic
);
osd_SetMenuUpdate
(
p_osd
,
VLC_TRUE
);
osd_SetMenuVisible
(
p_osd
,
VLC_TRUE
);
p_button
=
p_osd
->
p_state
->
p_volume
;
if
(
p_osd
->
p_state
->
p_volume
)
p_osd
->
p_state
->
p_visible
=
p_osd
->
p_state
->
p_volume
;
if
(
p_button
&&
p_button
->
b_range
)
{
/* Update the volume state images to match the current volume */
i_volume
=
config_GetInt
(
p_this
,
"volume"
);
i_steps
=
osd_VolumeStep
(
p_this
,
i_volume
,
p_button
->
i_ranges
);
p_button
->
p_current_state
=
osd_VolumeStateChange
(
p_button
->
p_states
,
i_steps
);
osd_UpdateState
(
p_osd
->
p_state
,
p_button
->
i_x
,
p_button
->
i_y
,
p_button
->
p_current_state
->
p_pic
->
p
[
Y_PLANE
].
i_visible_pitch
,
p_button
->
p_current_state
->
p_pic
->
p
[
Y_PLANE
].
i_visible_lines
,
p_button
->
p_current_state
->
p_pic
);
osd_SetMenuUpdate
(
p_osd
,
VLC_TRUE
);
osd_SetMenuVisible
(
p_osd
,
VLC_TRUE
);
}
vlc_object_release
(
(
vlc_object_t
*
)
p_osd
);
vlc_mutex_unlock
(
lockval
.
p_address
);
}
vlc_object_release
(
(
vlc_object_t
*
)
p_osd
);
vlc_mutex_unlock
(
lockval
.
p_address
);
}
src/osd/osd_parser.c
View file @
c36f6582
...
...
@@ -88,8 +88,12 @@ static osd_menu_t *osd_MenuNew( osd_menu_t *p_menu, const char *psz_path, int i_
p_menu
->
p_state
=
(
osd_menu_state_t
*
)
malloc
(
sizeof
(
osd_menu_state_t
)
);
if
(
!
p_menu
->
p_state
)
{
msg_Err
(
p_menu
,
"Memory allocation for OSD Menu state failed"
);
return
NULL
;
}
memset
(
p_menu
->
p_state
,
0
,
sizeof
(
osd_menu_state_t
));
if
(
psz_path
!=
NULL
)
p_menu
->
psz_path
=
strdup
(
psz_path
);
else
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new 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