[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