Repository: incubator-guacamole-server
Updated Branches:
  refs/heads/master 2c2824fc5 -> 516c4a059


GUACAMOLE-240: Always pass guac_pa_stream to PulseAudio callbacks.


Project: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-server/repo
Commit: 
http://git-wip-us.apache.org/repos/asf/incubator-guacamole-server/commit/adf9db74
Tree: 
http://git-wip-us.apache.org/repos/asf/incubator-guacamole-server/tree/adf9db74
Diff: 
http://git-wip-us.apache.org/repos/asf/incubator-guacamole-server/diff/adf9db74

Branch: refs/heads/master
Commit: adf9db74540414e9455c5bfbc5661b0125789560
Parents: 145762a
Author: Michael Jumper <mjum...@apache.org>
Authored: Thu Mar 16 02:53:32 2017 +0000
Committer: Michael Jumper <mjum...@apache.org>
Committed: Wed Mar 15 21:24:29 2017 -0700

----------------------------------------------------------------------
 src/pulse/pulse.c | 18 +++++++++++-------
 1 file changed, 11 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-guacamole-server/blob/adf9db74/src/pulse/pulse.c
----------------------------------------------------------------------
diff --git a/src/pulse/pulse.c b/src/pulse/pulse.c
index af1680d..03f6d52 100644
--- a/src/pulse/pulse.c
+++ b/src/pulse/pulse.c
@@ -122,7 +122,9 @@ static void __stream_state_callback(pa_stream* stream, 
void* data) {
 static void __context_get_sink_info_callback(pa_context* context,
         const pa_sink_info* info, int is_last, void* data) {
 
-    guac_client* client = (guac_client*) data;
+    guac_pa_stream* guac_stream = (guac_pa_stream*) data;
+    guac_client* client = guac_stream->client;
+
     pa_stream* stream;
     pa_sample_spec spec;
     pa_buffer_attr attr;
@@ -146,8 +148,8 @@ static void __context_get_sink_info_callback(pa_context* 
context,
     stream = pa_stream_new(context, "Guacamole Audio", &spec, NULL);
 
     /* Set stream callbacks */
-    pa_stream_set_state_callback(stream, __stream_state_callback, client);
-    pa_stream_set_read_callback(stream, __stream_read_callback, client);
+    pa_stream_set_state_callback(stream, __stream_state_callback, guac_stream);
+    pa_stream_set_read_callback(stream, __stream_read_callback, guac_stream);
 
     /* Start stream */
     pa_stream_connect_record(stream, info->monitor_source_name, &attr,
@@ -159,7 +161,8 @@ static void __context_get_sink_info_callback(pa_context* 
context,
 static void __context_get_server_info_callback(pa_context* context,
         const pa_server_info* info, void* data) {
 
-    guac_client* client = (guac_client*) data;
+    guac_pa_stream* guac_stream = (guac_pa_stream*) data;
+    guac_client* client = guac_stream->client;
 
     /* If no default sink, cannot continue */
     if (info->default_sink_name == NULL) {
@@ -174,13 +177,14 @@ static void 
__context_get_server_info_callback(pa_context* context,
     pa_operation_unref(
             pa_context_get_sink_info_by_name(context,
                 info->default_sink_name, __context_get_sink_info_callback,
-                client));
+                guac_stream));
 
 }
 
 static void __context_state_callback(pa_context* context, void* data) {
 
-    guac_client* client = (guac_client*) data;
+    guac_pa_stream* guac_stream = (guac_pa_stream*) data;
+    guac_client* client = guac_stream->client;
 
     switch (pa_context_get_state(context)) {
 
@@ -205,7 +209,7 @@ static void __context_state_callback(pa_context* context, 
void* data) {
         case PA_CONTEXT_READY:
             guac_client_log(client, GUAC_LOG_INFO, "PulseAudio now ready");
             pa_operation_unref(pa_context_get_server_info(context,
-                        __context_get_server_info_callback, client));
+                        __context_get_server_info_callback, guac_stream));
             break;
 
         case PA_CONTEXT_FAILED:

Reply via email to