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
dc0f32c1
Commit
dc0f32c1
authored
May 01, 2010
by
Laurent Aimar
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Updated osdmenu to new sub-filter mouse API.
parent
72aabd94
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
25 additions
and
51 deletions
+25
-51
modules/video_filter/osdmenu.c
modules/video_filter/osdmenu.c
+25
-51
No files found.
modules/video_filter/osdmenu.c
View file @
dc0f32c1
...
@@ -30,7 +30,6 @@
...
@@ -30,7 +30,6 @@
#include <vlc_common.h>
#include <vlc_common.h>
#include <vlc_plugin.h>
#include <vlc_plugin.h>
#include <vlc_vout.h>
#include <vlc_filter.h>
#include <vlc_filter.h>
#include <vlc_osd.h>
#include <vlc_osd.h>
...
@@ -97,8 +96,10 @@ static int OSDMenuVisibleEvent( vlc_object_t *, char const *,
...
@@ -97,8 +96,10 @@ static int OSDMenuVisibleEvent( vlc_object_t *, char const *,
static
int
OSDMenuCallback
(
vlc_object_t
*
,
char
const
*
,
static
int
OSDMenuCallback
(
vlc_object_t
*
,
char
const
*
,
vlc_value_t
,
vlc_value_t
,
void
*
);
vlc_value_t
,
vlc_value_t
,
void
*
);
static
int
MouseEvent
(
vlc_object_t
*
,
char
const
*
,
static
int
MouseEvent
(
filter_t
*
,
vlc_value_t
,
vlc_value_t
,
void
*
);
const
vlc_mouse_t
*
,
const
vlc_mouse_t
*
,
const
video_format_t
*
);
#define OSD_CFG "osdmenu-"
#define OSD_CFG "osdmenu-"
...
@@ -169,7 +170,6 @@ struct filter_sys_t
...
@@ -169,7 +170,6 @@ struct filter_sys_t
osd_menu_t
*
p_menu
;
/* pointer to OSD Menu object */
osd_menu_t
*
p_menu
;
/* pointer to OSD Menu object */
/* menu interaction */
/* menu interaction */
vout_thread_t
*
p_vout
;
bool
b_clicked
;
bool
b_clicked
;
uint32_t
i_mouse_x
;
uint32_t
i_mouse_x
;
uint32_t
i_mouse_y
;
uint32_t
i_mouse_y
;
...
@@ -252,11 +252,7 @@ static int CreateFilter ( vlc_object_t *p_this )
...
@@ -252,11 +252,7 @@ static int CreateFilter ( vlc_object_t *p_this )
/* Attach subpicture filter callback */
/* Attach subpicture filter callback */
p_filter
->
pf_sub_filter
=
Filter
;
p_filter
->
pf_sub_filter
=
Filter
;
p_filter
->
pf_sub_mouse
=
MouseEvent
;
p_sys
->
p_vout
=
vlc_object_find
(
p_this
,
VLC_OBJECT_VOUT
,
FIND_PARENT
);
if
(
p_sys
->
p_vout
)
var_AddCallback
(
p_sys
->
p_vout
,
"mouse-clicked"
,
MouseEvent
,
p_sys
);
es_format_Init
(
&
p_filter
->
fmt_out
,
SPU_ES
,
VLC_CODEC_SPU
);
es_format_Init
(
&
p_filter
->
fmt_out
,
SPU_ES
,
VLC_CODEC_SPU
);
p_filter
->
fmt_out
.
i_priority
=
0
;
p_filter
->
fmt_out
.
i_priority
=
0
;
...
@@ -290,13 +286,6 @@ static void DestroyFilter( vlc_object_t *p_this )
...
@@ -290,13 +286,6 @@ static void DestroyFilter( vlc_object_t *p_this )
var_DelCallback
(
p_sys
->
p_menu
,
"osd-menu-visible"
,
var_DelCallback
(
p_sys
->
p_menu
,
"osd-menu-visible"
,
OSDMenuVisibleEvent
,
p_filter
);
OSDMenuVisibleEvent
,
p_filter
);
if
(
p_sys
->
p_vout
)
{
var_DelCallback
(
p_sys
->
p_vout
,
"mouse-clicked"
,
MouseEvent
,
p_sys
);
vlc_object_release
(
p_sys
->
p_vout
);
}
var_Destroy
(
p_this
,
OSD_CFG
"file-path"
);
var_Destroy
(
p_this
,
OSD_CFG
"file-path"
);
var_Destroy
(
p_this
,
OSD_CFG
"file"
);
var_Destroy
(
p_this
,
OSD_CFG
"file"
);
var_Destroy
(
p_this
,
OSD_CFG
"x"
);
var_Destroy
(
p_this
,
OSD_CFG
"x"
);
...
@@ -486,7 +475,7 @@ static subpicture_t *Filter( filter_t *p_filter, mtime_t i_date )
...
@@ -486,7 +475,7 @@ static subpicture_t *Filter( filter_t *p_filter, mtime_t i_date )
return
p_spu
;
return
p_spu
;
}
}
if
(
p_sys
->
p_vout
&&
p_sys
->
b_clicked
)
if
(
p_sys
->
b_clicked
)
{
{
p_sys
->
b_clicked
=
false
;
p_sys
->
b_clicked
=
false
;
osd_MenuActivate
(
p_filter
);
osd_MenuActivate
(
p_filter
);
...
@@ -624,43 +613,28 @@ static int OSDMenuCallback( vlc_object_t *p_this, char const *psz_var,
...
@@ -624,43 +613,28 @@ static int OSDMenuCallback( vlc_object_t *p_this, char const *psz_var,
return
VLC_SUCCESS
;
return
VLC_SUCCESS
;
}
}
/*****************************************************************************
static
int
MouseEvent
(
filter_t
*
p_filter
,
* MouseEvent: callback for mouse events
const
vlc_mouse_t
*
p_old
,
*****************************************************************************/
const
vlc_mouse_t
*
p_new
,
static
int
MouseEvent
(
vlc_object_t
*
p_this
,
char
const
*
psz_var
,
const
video_format_t
*
p_fmt
)
vlc_value_t
oldval
,
vlc_value_t
newval
,
void
*
p_data
)
{
{
VLC_UNUSED
(
oldval
);
filter_sys_t
*
p_sys
=
p_filter
->
p_sys
;
filter_sys_t
*
p_sys
=
(
filter_sys_t
*
)
p_data
;
vout_thread_t
*
p_vout
=
(
vout_thread_t
*
)
p_sys
->
p_vout
;
int
i_x
=
newval
.
coords
.
x
;
int
i_y
=
newval
.
coords
.
y
;
int
v_h
=
p_vout
->
fmt_out
.
i_height
;
int
v_w
=
p_vout
->
fmt_out
.
i_width
;
if
(
i_y
<
0
||
i_x
<
0
||
i_y
>=
v_h
||
i_x
>=
v_w
)
return
VLC_SUCCESS
;
do
if
(
!
vlc_mouse_HasPressed
(
p_old
,
p_new
,
MOUSE_BUTTON_LEFT
)
)
{
return
VLC_SUCCESS
;
int
i_scale_width
,
i_scale_height
;
osd_button_t
*
p_button
=
NULL
;
i_scale_width
=
p_vout
->
fmt_out
.
i_visible_width
*
1000
/
osd_button_t
*
p_button
=
osd_ButtonFind
(
VLC_OBJECT
(
p_filter
),
p_vout
->
fmt_in
.
i_visible_width
;
p_new
->
i_x
,
i_scale_height
=
p_vout
->
fmt_out
.
i_visible_height
*
1000
/
p_new
->
i_y
,
p_vout
->
fmt_in
.
i_visible_height
;
p_fmt
->
i_width
,
p_fmt
->
i_height
,
1000
,
1000
);
if
(
!
p_button
)
return
VLC_SUCCESS
;
p_button
=
osd_ButtonFind
(
p_this
,
i_x
,
i_y
,
v_h
,
v_w
,
osd_ButtonSelect
(
VLC_OBJECT
(
p_filter
),
p_button
);
i_scale_width
,
i_scale_height
);
if
(
p_button
)
{
osd_ButtonSelect
(
p_this
,
p_button
);
p_sys
->
b_update
=
p_sys
->
b_visible
?
true
:
false
;
p_sys
->
b_update
=
p_sys
->
b_visible
?
true
:
false
;
p_sys
->
b_clicked
=
true
;
p_sys
->
b_clicked
=
true
;
msg_Dbg
(
p_this
,
"mouse clicked %s (%d,%d)"
,
p_button
->
psz_name
,
i_x
,
i_y
);
msg_Dbg
(
p_filter
,
"mouse clicked %s (%d,%d)"
,
p_button
->
psz_name
,
p_new
->
i_x
,
p_new
->
i_y
);
}
}
while
(
0
);
return
VLC_SUCCESS
;
return
VLC_SUCCESS
;
}
}
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