[meego-commits] 9025: Changes to Trunk/pulseaudio-modules-meego

Peter Zhu no_reply at build.meego.com
Thu Oct 28 14:10:49 UTC 2010


Hi,
I have made the following changes to pulseaudio-modules-meego in project Trunk. Please review and accept ASAP.

Thank You,
Peter Zhu

[This message was auto-generated]

---

Request #9025:

  submit:   Trunk:Testing/pulseaudio-modules-meego(r4) -> Trunk/pulseaudio-modules-meego


Message:
    Move to Trunk

State:   new          2010-10-28T07:10:49 peter
Comment: None



changes files:
--------------
--- pulseaudio-modules-meego.changes
+++ pulseaudio-modules-meego.changes
@@ -0,0 +1,4 @@
+* Thu Oct 26 2010 Jouni Peltonen <jouni.peltonen at cybercom.com> - 0.9.21.0.20100915
+- Cmtspeech module patch changed to include alsa_sink_old primary and alternative
+  buffer switching. Part of the fix for BMC#8423, BMC#8428 and BMC#8605.
+

spec files:
-----------

other changes:
--------------

++++++ pulseaudio-modules-meego-cmtspeech-ofono.patch
--- pulseaudio-modules-meego-cmtspeech-ofono.patch
+++ pulseaudio-modules-meego-cmtspeech-ofono.patch
@@ -1,41 +1,54 @@
 --- a/src/cmtspeech/cmtspeech-connection.h
 +++ b/src/cmtspeech/cmtspeech-connection.h
-@@ -35,6 +35,9 @@
+@@ -35,6 +35,11 @@
  #define CMTSPEECH_DBUS_PHONE_SSC_STATE_IF   "com.nokia.phone.SSC"
  #define CMTSPEECH_DBUS_PHONE_SSC_STATE_SIG  "modem_state_changed_ind"
  
-+#define OFONO_DBUS_VOICECALLMANAGER_IF         "org.ofono.VoiceCallManager"
-+#define OFONO_DBUS_VOICECALLMANAGER_CHANGE_SIG "PropertyChanged"
++#define OFONO_DBUS_VOICECALL_IF         "org.ofono.VoiceCall"
++#define OFONO_DBUS_VOICECALL_CHANGE_SIG "PropertyChanged"
++#define ALSA_OLD_ALTERNATIVE_PROP       "x-maemo.alsa_sink.buffers=alternative"
++#define ALSA_OLD_PRIMARY_PROP           "x-maemo.alsa_sink.buffers=primary"
 +
  #include <cmtspeech_msgs.h>
  
  typedef cmtspeech_buffer_t cmtspeech_dl_buf_t;
 --- a/src/cmtspeech/cmtspeech-connection.c
 +++ b/src/cmtspeech/cmtspeech-connection.c
-@@ -818,6 +818,40 @@
+@@ -830,6 +830,51 @@
                  }
              }
          }
-+    } else if (dbus_message_is_signal(msg, OFONO_DBUS_VOICECALLMANAGER_IF, OFONO_DBUS_VOICECALLMANAGER_CHANGE_SIG)) {
-+        pa_log_debug("Received voicecallmanager change");        
++    } else if (dbus_message_is_signal(msg, OFONO_DBUS_VOICECALL_IF, OFONO_DBUS_VOICECALL_CHANGE_SIG)) {
++        pa_log_debug("Received voicecall change");        
 +        if (dbus_message_iter_init(msg, &args) == TRUE) {
 +          if ((type = dbus_message_iter_get_arg_type(&args)) == DBUS_TYPE_STRING) {
 +            const char* callstr;
 +            dbus_message_iter_get_basic(&args,&callstr);
-+            if (strcmp(callstr,"Calls") == 0) {
-+              pa_log_debug("Received voicecallmanager Calls array change");
++            if (strcmp(callstr,"State") == 0) {
++              pa_log_debug("Received voicecall state change");
 +              if (dbus_message_iter_next (&args) == TRUE) {
-+                DBusMessageIter callsarray;
-+                DBusMessageIter callsarray_entry;
-+                dbus_bool_t val;
-+                dbus_message_iter_recurse(&args,&callsarray);
-+                dbus_message_iter_recurse(&callsarray, &callsarray_entry);
-+                if ((type = dbus_message_iter_get_arg_type(&callsarray_entry)) == DBUS_TYPE_OBJECT_PATH) {
-+                  pa_log_debug("Received voicecallmanager Calls array has entries");
++                DBusMessageIter callstate;
++                const char* callstatestr;
++                dbus_bool_t val = FALSE;
++                dbus_message_iter_recurse(&args,&callstate);
++                dbus_message_iter_get_basic(&callstate,&callstatestr);                
++                if (strcmp(callstatestr,"active") == 0) {
++                  pa_log_debug("Call active");                  
 +                  val = TRUE;                      
-+                } else {
-+                  pa_log_debug("Received voicecallmanager Calls array has no entries");
++                } else if (strcmp(callstatestr,"disconnected") == 0) {
++                  pa_log_debug("Call disconnected");
 +                  val = FALSE;
++                }                
++                if (u->old_alsa_sink) {
++                    if (val) {
++                        pa_sink_update_proplist(u->old_alsa_sink,PA_UPDATE_REPLACE,pa_proplist_from_string(ALSA_OLD_ALTERNATIVE_PROP));
++                        pa_log_debug("Alternative buffers used on alsa_sink_old"); 
++                    } else {
++                        pa_sink_update_proplist(u->old_alsa_sink,PA_UPDATE_REPLACE,pa_proplist_from_string(ALSA_OLD_PRIMARY_PROP));
++                        pa_log_debug("Primary buffers used on alsa_sink_old");                
++                    }
++                } else {
++                   pa_log_debug("No alsa_sink_old found");
 +                }
 +                pa_log_debug("Set ServerStatus to %d.", val == TRUE);
 +                /* note: very rarely taken code path */
@@ -47,7 +60,7 @@
 +            }
 +          }
 +        } else
-+            pa_log_error("received %s with invalid parameters", OFONO_DBUS_VOICECALLMANAGER_CHANGE_SIG);
++            pa_log_error("Received %s with invalid parameters", OFONO_DBUS_VOICECALL_CHANGE_SIG);
 +
 +        return DBUS_HANDLER_RESULT_HANDLED;
      }
@@ -55,14 +68,81 @@
      return DBUS_HANDLER_RESULT_NOT_YET_HANDLED;
 --- a/src/cmtspeech/cmtspeech-dbus.c
 +++ b/src/cmtspeech/cmtspeech-dbus.c
-@@ -111,6 +111,11 @@
+@@ -109,6 +109,11 @@
+     snprintf(rule, sizeof(rule), "type='signal',interface='%s'", CMTSPEECH_DBUS_PHONE_SSC_STATE_IF);
      if (add_dbus_match(e, dbusconn, rule)) {
-        goto fail;
-     }
+ 	goto fail;
++    }
 +    
-+    snprintf(rule, sizeof(rule), "type='signal',interface='%s'", OFONO_DBUS_VOICECALLMANAGER_IF);
++    snprintf(rule, sizeof(rule), "type='signal',interface='%s'", OFONO_DBUS_VOICECALL_IF);
 +    if (add_dbus_match(e, dbusconn, rule)) {
-+  goto fail;
-+    }
++    goto fail;
+     }
  
      return 0;
+--- a/src/cmtspeech/module-meego-cmtspeech.c
++++ b/src/cmtspeech/module-meego-cmtspeech.c
+@@ -42,6 +42,7 @@
+     "sink=<sink to connect to> "
+     "source=<source to connect to> "
+     "dbus_type=<defaults to session> "
++    "old_alsa_sink_name=<name of the old alsa sink>"
+ );
+ PA_MODULE_VERSION(PACKAGE_VERSION);
+ 
+@@ -49,6 +50,7 @@
+     "sink",
+     "source",
+     "dbus_type",
++    "old_alsa_sink_name",
+     NULL,
+ };
+ 
+@@ -100,8 +102,9 @@
+ int pa__init(pa_module*m) {
+     pa_modargs *ma = NULL;
+     struct userdata *u;
+-    const char *sink_name, *source_name, *dbus_type;
++    const char *sink_name, *source_name, *dbus_type, *old_alsa_sink_name;
+     pa_sink *sink = NULL;
++    pa_sink *old_alsa_sink = NULL;
+     pa_source *source = NULL;
+ 
+     pa_assert(m);
+@@ -114,9 +117,10 @@
+     sink_name = pa_modargs_get_value(ma, "sink", NULL);
+     source_name = pa_modargs_get_value(ma, "source", NULL);
+     dbus_type = pa_modargs_get_value(ma, "dbus_type", "session");
++    old_alsa_sink_name = pa_modargs_get_value(ma, "old_alsa_sink_name", PROPLIST_SINK);
+ 
+-    pa_log_debug("Got arguments: sink=\"%s\" source=\"%s\" dbus_type=\"%s\"",
+-                 sink_name, source_name, dbus_type);
++    pa_log_debug("Got arguments: sink=\"%s\" source=\"%s\" dbus_type=\"%s\" old_alsa_sink_name=\"%s\"",
++                 sink_name, source_name, dbus_type, old_alsa_sink_name);
+ 
+     u = pa_xnew0(struct userdata, 1);
+     m->userdata = u;
+@@ -140,6 +144,12 @@
+         pa_log_error("Sink \"%s\" not found", sink_name);
+         goto fail;
+     }
++    
++    if (!(old_alsa_sink = pa_namereg_get(m->core, old_alsa_sink_name, PA_NAMEREG_SINK))) {
++        pa_log_error("Old alsa sink \"%s\" not found", old_alsa_sink_name);
++    }
++
++    u->old_alsa_sink = old_alsa_sink;
+
+     u->sink_name = pa_xstrdup(sink_name);
+     u->source_name = pa_xstrdup(source_name); 
+--- a/src/cmtspeech/module-meego-cmtspeech.h
++++ b/src/cmtspeech/module-meego-cmtspeech.h
+@@ -68,6 +68,8 @@
+ 
+     pa_sink_input *sink_input;
+     pa_source_output *source_output;
++    
++    pa_sink *old_alsa_sink;
+ 
+     /* Access only from sink IO-thread */
+     pa_queue *local_sideinfoq;




More information about the MeeGo-commits mailing list