Hello Vivian,
We (some folks at #meego-arm) would like you to consider an alternative
method of choosing default.pa at PulseAudio startup.
You see, we noticed that pulseaudio can take any .pa script file as a
parameter and ignore the default: /etc/pulse/default.pa.
Also, as you know, pulseaudio is already started via
/usr/bin/start-pulseaudio script.
So, what we are suggesting is that pulseaudio configuration (*.pa) would
be selected at /usr/bin/start-pulseaudio in following manner:
...
CONFIG_SELECT=""
if [ -e /etc/boardname ]; then
BOARDNAME=`cat /etc/boardname`
if [ -e /etc/pulse/default_$BOARDNAME.pa ]; then
CONFIG_SELECT="-n --file=/etc/pulse/default_$BOARDNAME.pa"
elif grep -q '[tT]ablet$' /etc/boardname; then
# This elif is not necessary if given proper *.pa files
CONFIG_SELECT="-n --file=/etc/pulse/default_tablet.pa"
fi
fi
/usr/bin/pulseaudio --start $CONFIG_SELECT "$@"
...
This would bring 2-3 advantages:
1) This solution would spare us from patching pulseaudio code.
2) Adding a new .pa file would not require any further change to
pulseaudio or its packaging.
3) *.pa files could be provided in separate setting packages. For n900
we would like to provide it in pulseaudio-setting-n900.
We will provide you a version for review as soon as possible.
Thank you,
Sami Sirkia
On 03/16/2011 03:54 PM, Vivian Zhang wrote:
Hi,
I have made the following changes to pulseaudio in project devel:multimedia.
Please review and accept ASAP.
Thank You,
Vivian Zhang
[This message was auto-generated]
---
Request #14886:
submit: home:vivian:branches:devel:multimedia/pulseaudio(r9)(cleanup) ->
devel:multimedia/pulseaudio
Message:
Add patch for choosing script file based on the platform detecting (BMC
#6728)
State: new 2011-03-16T06:54:12 vivian
Comment: None
changes files:
--------------
--- pulseaudio.changes
+++ pulseaudio.changes
@@ -0,0 +1,3 @@
+* Wed Mar 16 2011 vivian zhang<[email protected]> - 0.9.19
+- Add patch for choosing script file based on the platform detecting (BMC
#6728)
+
new:
----
add-boardname-detect.patch
default_tablet.pa
spec files:
-----------
--- pulseaudio.spec
+++ pulseaudio.spec
@@ -18,10 +18,8 @@
Source2: daemon.conf
Source3: 90-pulse.conf
Source4: start-pulseaudio
-#set in a new package pulseaudio-settings-mfld
-#Source5: default_mfld.pa
-#Source6: daemon_mfld.conf
-Source7: mixer-0.9.19-orig.tar.bz2
+Source5: mixer-0.9.19-orig.tar.bz2
+Source6: default_tablet.pa
Source100: pulseaudio.yaml
Patch0: pa-0.9.19-desktop.patch
Patch1: pa-0.9.19-svolume-arm.patch
@@ -51,6 +49,7 @@
Patch25:
pa-0.9.19-mfld-Correct-wav-file-creation-for-24-32-and-24-bits-samp.patch
Patch26:
pa-0.9.19-mfld-Fix-various-bugs-Support-new-option-trace_ports.patch
Patch27: fix-9972-auto-route-audio-to-bt-sink.patch
+Patch28: add-boardname-detect.patch
Requires: udev>= 145-3
Requires: xcb-util
Requires(post): /sbin/ldconfig
@@ -173,6 +172,8 @@
%patch26 -p1
# fix-9972-auto-route-audio-to-bt-sink.patch
%patch27 -p1
+# add-boardname-detect.patch
+%patch28 -p1
#>> setup
#<< setup
@@ -196,6 +197,7 @@
install -d %{buildroot}/etc/pulse/
cp -a %{SOURCE1} %{buildroot}/etc/pulse/default.pa
cp -a %{SOURCE2} %{buildroot}/etc/pulse/daemon.conf
+cp -a %{SOURCE6} %{buildroot}/etc/pulse/default_tablet.pa
install -d %{buildroot}/etc/security/limits.d
cp -a %{SOURCE3} %{buildroot}/etc/security/limits.d
@@ -206,7 +208,7 @@
install -m 644 src/pulsecore/*.h
%{buildroot}/usr/include/pulse-modules-headers/pulsecore/
mv %{buildroot}/usr/share/pulseaudio/alsa-mixer
%{buildroot}/usr/share/pulseaudio/alsa-mixer-mfld
-tar -xvf %{SOURCE7}
+tar -xvf %{SOURCE5}
install -d %{buildroot}/usr/share/pulseaudio/alsa-mixer/paths
install -m 644 alsa-mixer/paths/*
%{buildroot}/usr/share/pulseaudio/alsa-mixer/paths/
install -d %{buildroot}/usr/share/pulseaudio/alsa-mixer/profile-sets
@@ -256,6 +258,7 @@
%config(noreplace) %{_sysconfdir}/pulse/default.pa
%config(noreplace) %{_sysconfdir}/pulse/system.pa
%config(noreplace) %{_sysconfdir}/pulse/client.conf
+%config(noreplace) %{_sysconfdir}/pulse/default_tablet.pa
%exclude %config(noreplace)
%{_sysconfdir}/xdg/autostart/pulseaudio-kde.desktop
%exclude %{_bindir}/start-pulseaudio-kde
%exclude %config(noreplace)
%{_sysconfdir}/dbus-1/system.d/pulseaudio-system.conf
other changes:
--------------
++++++ add-boardname-detect.patch (new)
--- add-boardname-detect.patch
+++ add-boardname-detect.patch
+diff -Nur pulseaudio-0.9.19/src/daemon/daemon-conf.c
pulseaudio-0.9.19-new/src/daemon/daemon-conf.c
+--- pulseaudio-0.9.19/src/daemon/daemon-conf.c 2011-03-15 14:47:19.386225794
+0800
++++ pulseaudio-0.9.19-new/src/daemon/daemon-conf.c 2011-03-16
16:29:39.253225635 +0800
+@@ -47,6 +47,7 @@
+
+ #define DEFAULT_SCRIPT_FILE PA_DEFAULT_CONFIG_DIR PA_PATH_SEP "default.pa"
+ #define DEFAULT_SCRIPT_FILE_USER PA_PATH_SEP "default.pa"
++#define DEFAULT_SCRIPT_FILE_TABLET PA_DEFAULT_CONFIG_DIR PA_PATH_SEP
"default_tablet.pa"
+ #define DEFAULT_SYSTEM_SCRIPT_FILE PA_DEFAULT_CONFIG_DIR PA_PATH_SEP
"system.pa"
+
+ #define DEFAULT_CONFIG_FILE PA_DEFAULT_CONFIG_DIR PA_PATH_SEP "daemon.conf"
+@@ -733,10 +734,14 @@
+
+ const char *pa_daemon_conf_get_default_script_file(pa_daemon_conf *c) {
+ pa_assert(c);
+-
++
+ if (!c->default_script_file) {
+ if (c->system_instance)
+ c->default_script_file =
pa_find_config_file(DEFAULT_SYSTEM_SCRIPT_FILE, NULL, ENV_SCRIPT_FILE);
++ else if (!strcmp(pa_get_boardname(), "Tablet")) {
++ pa_log_debug("Meego: use default_tablet.pa as the default script
file");
++ c->default_script_file =
pa_find_config_file(DEFAULT_SCRIPT_FILE_TABLET, DEFAULT_SCRIPT_FILE_USER,
ENV_SCRIPT_FILE);
++ }
+ else
+ c->default_script_file = pa_find_config_file(DEFAULT_SCRIPT_FILE,
DEFAULT_SCRIPT_FILE_USER, ENV_SCRIPT_FILE);
+ }
+@@ -751,6 +756,10 @@
+ if (!c->default_script_file) {
+ if (c->system_instance)
+ f = pa_open_config_file(DEFAULT_SYSTEM_SCRIPT_FILE, NULL,
ENV_SCRIPT_FILE,&c->default_script_file);
++ else if (!strcmp(pa_get_boardname(), "Tablet")) {
++ pa_log_debug("Meego: open default_tablet.pa as the default script
file");
++ f = pa_open_config_file(DEFAULT_SCRIPT_FILE_TABLET,
DEFAULT_SCRIPT_FILE_USER, ENV_SCRIPT_FILE,&c->default_script_file);
++ }
+ else
+ f = pa_open_config_file(DEFAULT_SCRIPT_FILE, DEFAULT_SCRIPT_FILE_USER,
ENV_SCRIPT_FILE,&c->default_script_file);
+ } else
+diff -Nur pulseaudio-0.9.19/src/pulsecore/core-util.c
pulseaudio-0.9.19-new/src/pulsecore/core-util.c
+--- pulseaudio-0.9.19/src/pulsecore/core-util.c 2011-03-15
14:47:19.405225713 +0800
++++ pulseaudio-0.9.19-new/src/pulsecore/core-util.c 2011-03-16
15:48:51.848225641 +0800
+@@ -3095,3 +3095,18 @@
+
+ pa_xfree(strv);
+ }
++
++const char *pa_get_boardname(void) {
++ FILE *f;
++ // read and get boardname
++ if ((f = pa_fopen_cloexec("/etc/boardname", "r"))) {
++ char ln[30] = "";
++ fgets(ln, sizeof(ln)-1, f);
++ fclose(f);
++ pa_strip_nl(ln);
++ pa_log_debug("Meego: read boardname %s", ln);
++ if (pa_endswith(ln, "tablet"))
++ return "Tablet";
++ }
++ return "None";
++}
+diff -Nur pulseaudio-0.9.19/src/pulsecore/core-util.h
pulseaudio-0.9.19-new/src/pulsecore/core-util.h
+--- pulseaudio-0.9.19/src/pulsecore/core-util.h 2011-03-15
14:47:19.398225713 +0800
++++ pulseaudio-0.9.19-new/src/pulsecore/core-util.h 2011-03-16
14:19:52.355225598 +0800
+@@ -270,5 +270,6 @@
+ FILE* pa_fopen_cloexec(const char *path, const char *mode);
+
+ void pa_nullify_stdfds(void);
++const char* pa_get_boardname(void);
+
+ #endif
++++++ default_tablet.pa (new)
--- default_tablet.pa
+++ default_tablet.pa
+#!/usr/bin/pulseaudio -nF
+.fail
+
+### Automatically restore the volume of streams and devices
+load-module module-device-restore
+#load-module module-stream-restore
+load-module module-card-restore
+
+load-module module-native-protocol-unix
+
+### Automatically suspend sinks/sources that become idle for too long
+load-module module-suspend-on-idle
+
+### Automatically move streams to the default sink if the sink they are
+### connected to dies, similar for sources
+load-module module-rescue-streams
+
+### Publish connection data in the X11 root window
+.ifexists module-x11-publish.so
+.nofail
+load-module module-x11-publish
+.fail
+.endif
+
+load-module module-udev-detect tsched=0
+load-module module-bluetooth-discover
++++++ pulseaudio.yaml
--- pulseaudio.yaml
+++ pulseaudio.yaml
@@ -13,6 +13,7 @@
- 90-pulse.conf
- start-pulseaudio
- mixer-0.9.19-orig.tar.bz2
+ - default_tablet.pa
Patches:
- pa-0.9.19-desktop.patch
- pa-0.9.19-svolume-arm.patch
@@ -42,6 +43,7 @@
-
pa-0.9.19-mfld-Correct-wav-file-creation-for-24-32-and-24-bits-samp.patch
- pa-0.9.19-mfld-Fix-various-bugs-Support-new-option-trace_ports.patch
- fix-9972-auto-route-audio-to-bt-sink.patch
+ - add-boardname-detect.patch
Description: |
PulseAudio is a sound server for Linux and other Unix like operating
systems. It is intended to be an improved drop-in replacement for the
_______________________________________________
MeeGo-commits mailing list
[email protected]
http://lists.meego.com/listinfo/meego-commits
_______________________________________________
MeeGo-packaging mailing list
[email protected]
http://lists.meego.com/listinfo/meego-packaging