Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
V
vlc
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
Commits
fc15c20e
Commit
fc15c20e
authored
Jul 27, 2015
by
Rémi Denis-Courmont
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
libvlc: expose event for audio output device change
parent
a8ffc3b8
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
23 additions
and
0 deletions
+23
-0
include/vlc/libvlc_events.h
include/vlc/libvlc_events.h
+6
-0
lib/event.c
lib/event.c
+1
-0
lib/media_player.c
lib/media_player.c
+16
-0
No files found.
include/vlc/libvlc_events.h
View file @
fc15c20e
...
...
@@ -82,6 +82,7 @@ enum libvlc_event_e {
libvlc_MediaPlayerMuted
,
libvlc_MediaPlayerUnmuted
,
libvlc_MediaPlayerAudioVolume
,
libvlc_MediaPlayerAudioDevice
,
libvlc_MediaListItemAdded
=
0x200
,
libvlc_MediaListWillAddItem
,
...
...
@@ -250,6 +251,11 @@ typedef struct libvlc_event_t
{
float
volume
;
}
media_player_audio_volume
;
struct
{
const
char
*
device
;
}
media_player_audio_device
;
}
u
;
/**< Type-dependent event description */
}
libvlc_event_t
;
...
...
lib/event.c
View file @
fc15c20e
...
...
@@ -288,6 +288,7 @@ static const event_name_t event_list[] = {
DEF
(
MediaPlayerMuted
)
DEF
(
MediaPlayerUnmuted
)
DEF
(
MediaPlayerAudioVolume
)
DEF
(
MediaPlayerAudioDevice
)
DEF
(
MediaListItemAdded
)
DEF
(
MediaListWillAddItem
)
...
...
lib/media_player.c
View file @
fc15c20e
...
...
@@ -491,6 +491,19 @@ static int corks_changed(vlc_object_t *obj, const char *name, vlc_value_t old,
return
VLC_SUCCESS
;
}
static
int
audio_device_changed
(
vlc_object_t
*
obj
,
const
char
*
name
,
vlc_value_t
old
,
vlc_value_t
cur
,
void
*
opaque
)
{
libvlc_media_player_t
*
mp
=
(
libvlc_media_player_t
*
)
obj
;
libvlc_event_t
event
;
event
.
type
=
libvlc_MediaPlayerAudioDevice
;
event
.
u
.
media_player_audio_device
.
device
=
cur
.
psz_string
;
libvlc_event_send
(
mp
->
p_event_manager
,
&
event
);
VLC_UNUSED
(
name
);
VLC_UNUSED
(
old
);
VLC_UNUSED
(
opaque
);
return
VLC_SUCCESS
;
}
static
int
mute_changed
(
vlc_object_t
*
obj
,
const
char
*
name
,
vlc_value_t
old
,
vlc_value_t
cur
,
void
*
opaque
)
{
...
...
@@ -702,8 +715,10 @@ libvlc_media_player_new( libvlc_instance_t *instance )
register_event
(
mp
,
Muted
);
register_event
(
mp
,
Unmuted
);
register_event
(
mp
,
AudioVolume
);
register_event
(
mp
,
AudioDevice
);
var_AddCallback
(
mp
,
"corks"
,
corks_changed
,
NULL
);
var_AddCallback
(
mp
,
"audio-device"
,
audio_device_changed
,
NULL
);
var_AddCallback
(
mp
,
"mute"
,
mute_changed
,
NULL
);
var_AddCallback
(
mp
,
"volume"
,
volume_changed
,
NULL
);
...
...
@@ -759,6 +774,7 @@ static void libvlc_media_player_destroy( libvlc_media_player_t *p_mi )
/* Detach callback from the media player / input manager object */
var_DelCallback
(
p_mi
,
"volume"
,
volume_changed
,
NULL
);
var_DelCallback
(
p_mi
,
"mute"
,
mute_changed
,
NULL
);
var_DelCallback
(
p_mi
,
"audio-device"
,
audio_device_changed
,
NULL
);
var_DelCallback
(
p_mi
,
"corks"
,
corks_changed
,
NULL
);
/* No need for lock_input() because no other threads knows us anymore */
...
...
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