Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
jami-daemon
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Iterations
Wiki
Requirements
Code
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Locked files
Deploy
Releases
Model registry
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
Repository analytics
Issue analytics
Insights
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
GitLab community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
savoirfairelinux
jami-daemon
Commits
0a04814d
Commit
0a04814d
authored
15 years ago
by
Alexandre Savard
Browse files
Options
Downloads
Patches
Plain Diff
[#1962] Subscribe to pulseaudio events
parent
eee8d6b0
No related branches found
No related tags found
No related merge requests found
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
sflphone-common/src/audio/pulseaudio/pulselayer.cpp
+88
-1
88 additions, 1 deletion
sflphone-common/src/audio/pulseaudio/pulselayer.cpp
with
88 additions
and
1 deletion
sflphone-common/src/audio/pulseaudio/pulselayer.cpp
+
88
−
1
View file @
0a04814d
...
@@ -23,6 +23,23 @@
...
@@ -23,6 +23,23 @@
int
framesPerBuffer
=
2048
;
int
framesPerBuffer
=
2048
;
/*
PA_SUBSCRIPTION_EVENT_SINK = 0x0000U,
PA_SUBSCRIPTION_EVENT_SOURCE = 0x0001U,
PA_SUBSCRIPTION_EVENT_SINK_INPUT = 0x0002U,
PA_SUBSCRIPTION_EVENT_SOURCE_OUTPUT = 0x0003U,
PA_SUBSCRIPTION_EVENT_MODULE = 0x0004U,
PA_SUBSCRIPTION_EVENT_CLIENT = 0x0005U,
PA_SUBSCRIPTION_EVENT_SAMPLE_CACHE = 0x0006U,
PA_SUBSCRIPTION_EVENT_SERVER = 0x0007U,
PA_SUBSCRIPTION_EVENT_CARD = 0x0009U,
PA_SUBSCRIPTION_EVENT_FACILITY_MASK = 0x000FU,
PA_SUBSCRIPTION_EVENT_NEW = 0x0000U,
PA_SUBSCRIPTION_EVENT_CHANGE = 0x0010U,
PA_SUBSCRIPTION_EVENT_REMOVE = 0x0020U,
PA_SUBSCRIPTION_EVENT_TYPE_MASK = 0x0030U
*/
static
void
playback_callback
(
pa_stream
*
s
,
size_t
bytes
,
void
*
userdata
)
static
void
playback_callback
(
pa_stream
*
s
,
size_t
bytes
,
void
*
userdata
)
{
{
...
@@ -50,6 +67,73 @@ static void ringtone_callback (pa_stream* s, size_t bytes, void* userdata)
...
@@ -50,6 +67,73 @@ static void ringtone_callback (pa_stream* s, size_t bytes, void* userdata)
}
}
/*
PA_SUBSCRIPTION_EVENT_SINK = 0x0000U,
PA_SUBSCRIPTION_EVENT_SOURCE = 0x0001U,
PA_SUBSCRIPTION_EVENT_SINK_INPUT = 0x0002U,
PA_SUBSCRIPTION_EVENT_SOURCE_OUTPUT = 0x0003U,
PA_SUBSCRIPTION_EVENT_MODULE = 0x0004U,
PA_SUBSCRIPTION_EVENT_CLIENT = 0x0005U,
PA_SUBSCRIPTION_EVENT_SAMPLE_CACHE = 0x0006U,
PA_SUBSCRIPTION_EVENT_SERVER = 0x0007U,
PA_SUBSCRIPTION_EVENT_CARD = 0x0009U,
PA_SUBSCRIPTION_EVENT_FACILITY_MASK = 0x000FU,
PA_SUBSCRIPTION_EVENT_NEW = 0x0000U,
PA_SUBSCRIPTION_EVENT_CHANGE = 0x0010U,
PA_SUBSCRIPTION_EVENT_REMOVE = 0x0020U,
PA_SUBSCRIPTION_EVENT_TYPE_MASK = 0x0030U
*/
static
void
stream_changed_callback
(
pa_context
*
s
,
pa_subscription_event_type_t
t
,
uint32_t
idx
,
void
*
userdata
)
{
switch
(
t
)
{
case
PA_SUBSCRIPTION_EVENT_SINK
:
_debug
(
"Audio: PA_SUBSCRIPTION_EVENT_SINK"
);
break
;
case
PA_SUBSCRIPTION_EVENT_SOURCE
:
_debug
(
"Audio: PA_SUBSCRIPTION_EVENT_SOURCE"
);
break
;
case
PA_SUBSCRIPTION_EVENT_SINK_INPUT
:
_debug
(
"Audio: PA_SUBSCRIPTION_EVENT_SINK_INPUT"
);
break
;
case
PA_SUBSCRIPTION_EVENT_SOURCE_OUTPUT
:
_debug
(
"Audio: PA_SUBSCRIPTION_EVENT_SOURCE_OUTPUT"
);
break
;
case
PA_SUBSCRIPTION_EVENT_MODULE
:
_debug
(
"Audio: PA_SUBSCRIPTION_EVENT_MODULE"
);
break
;
case
PA_SUBSCRIPTION_EVENT_CLIENT
:
_debug
(
"Audio: PA_SUBSCRIPTION_EVENT_CLIENT"
);
break
;
case
PA_SUBSCRIPTION_EVENT_SAMPLE_CACHE
:
_debug
(
"Audio: PA_SUBSCRIPTION_EVENT_SAMPLE_CACHE"
);
break
;
case
PA_SUBSCRIPTION_EVENT_SERVER
:
_debug
(
"Audio: PA_SUBSCRIPTION_EVENT_SERVER"
);
break
;
case
PA_SUBSCRIPTION_EVENT_CARD
:
_debug
(
"Audio: PA_SUBSCRIPTION_EVENT_CARD"
);
break
;
case
PA_SUBSCRIPTION_EVENT_FACILITY_MASK
:
_debug
(
"Audio: PA_SUBSCRIPTION_EVENT_FACILITY_MASK"
);
break
;
case
PA_SUBSCRIPTION_EVENT_CHANGE
:
_debug
(
"Audio: PA_SUBSCRIPTION_EVENT_CHANGE"
);
break
;
case
PA_SUBSCRIPTION_EVENT_REMOVE
:
_debug
(
"Audio: PA_SUBSCRIPTION_EVENT_REMOVE"
);
break
;
case
PA_SUBSCRIPTION_EVENT_TYPE_MASK
:
_debug
(
"Audio: PA_SUBSCRIPTION_EVENT_TYPE_MASK"
);
break
;
default:
_debug
(
"Audio: Unknown event type"
);
}
}
/*
/*
static void stream_suspended_callback (pa_stream *s UNUSED, void *userdata UNUSED)
static void stream_suspended_callback (pa_stream *s UNUSED, void *userdata UNUSED)
{
{
...
@@ -300,6 +384,9 @@ bool PulseLayer::createStreams (pa_context* c)
...
@@ -300,6 +384,9 @@ bool PulseLayer::createStreams (pa_context* c)
pa_stream_set_write_callback
(
ringtone
->
pulseStream
(),
ringtone_callback
,
this
);
pa_stream_set_write_callback
(
ringtone
->
pulseStream
(),
ringtone_callback
,
this
);
delete
ringtoneParam
;
delete
ringtoneParam
;
pa_context_subscribe
(
c
,
PA_SUBSCRIPTION_MASK_SINK
,
NULL
,
this
);
pa_context_set_subscribe_callback
(
c
,
stream_changed_callback
,
this
);
pa_threaded_mainloop_signal
(
m
,
0
);
pa_threaded_mainloop_signal
(
m
,
0
);
flushMain
();
flushMain
();
...
@@ -683,7 +770,7 @@ void PulseLayer::ringtoneToSpeaker(void)
...
@@ -683,7 +770,7 @@ void PulseLayer::ringtoneToSpeaker(void)
int
writableSize
=
pa_stream_writable_size
(
ringtone
->
pulseStream
());
int
writableSize
=
pa_stream_writable_size
(
ringtone
->
pulseStream
());
_debug
(
"writable size: %d"
,
writableSize
);
//
_debug("writable size: %d", writableSize);
if
(
file_tone
)
{
if
(
file_tone
)
{
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
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!
Save comment
Cancel
Please
register
or
sign in
to comment