summaryrefslogtreecommitdiffstats
path: root/meta-rcar-gen3-adas/recipes-multimedia/pulseaudio
diff options
context:
space:
mode:
authorVladimir Barinov <vladimir.barinov@cogentembedded.com>2017-09-14 09:21:52 +0300
committerVladimir Barinov <vladimir.barinov@cogentembedded.com>2017-09-14 09:21:52 +0300
commit289fbd4f83543451323d6ce275fad1b5a85b61f1 (patch)
tree02310521c3426cad6b9c9f7321a26509d47044c4 /meta-rcar-gen3-adas/recipes-multimedia/pulseaudio
Initial commit for ADAS boards support in 2.23.0
Diffstat (limited to 'meta-rcar-gen3-adas/recipes-multimedia/pulseaudio')
-rw-r--r--meta-rcar-gen3-adas/recipes-multimedia/pulseaudio/files/client.conf36
-rw-r--r--meta-rcar-gen3-adas/recipes-multimedia/pulseaudio/files/daemon.conf87
-rw-r--r--meta-rcar-gen3-adas/recipes-multimedia/pulseaudio/files/default.pa149
-rw-r--r--meta-rcar-gen3-adas/recipes-multimedia/pulseaudio/files/hifi50
-rw-r--r--meta-rcar-gen3-adas/recipes-multimedia/pulseaudio/files/pulseaudio-bluetooth.conf7
-rwxr-xr-xmeta-rcar-gen3-adas/recipes-multimedia/pulseaudio/files/pulseaudio.init48
-rw-r--r--meta-rcar-gen3-adas/recipes-multimedia/pulseaudio/files/rsnddai0ak4613h.conf9
-rw-r--r--meta-rcar-gen3-adas/recipes-multimedia/pulseaudio/files/system.pa77
-rw-r--r--meta-rcar-gen3-adas/recipes-multimedia/pulseaudio/pulseaudio_8.0.bbappend39
9 files changed, 502 insertions, 0 deletions
diff --git a/meta-rcar-gen3-adas/recipes-multimedia/pulseaudio/files/client.conf b/meta-rcar-gen3-adas/recipes-multimedia/pulseaudio/files/client.conf
new file mode 100644
index 0000000..a17325b
--- /dev/null
+++ b/meta-rcar-gen3-adas/recipes-multimedia/pulseaudio/files/client.conf
@@ -0,0 +1,36 @@
+# This file is part of PulseAudio.
+#
+# PulseAudio is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# PulseAudio is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public License
+# along with PulseAudio; if not, see <http://www.gnu.org/licenses/>.
+
+## Configuration file for PulseAudio clients. See pulse-client.conf(5) for
+## more information. Default values are commented out. Use either ; or # for
+## commenting.
+
+; default-sink =
+; default-source =
+; default-server =
+; default-dbus-server =
+
+; autospawn = yes
+; allow-autospawn-for-root = no
+; daemon-binary = /usr/bin/pulseaudio
+; extra-arguments = --log-target=syslog
+
+; cookie-file =
+
+; enable-shm = yes
+; shm-size-bytes = 0 # setting this 0 will use the system-default, usually 64 MiB
+
+; auto-connect-localhost = no
+; auto-connect-display = no
diff --git a/meta-rcar-gen3-adas/recipes-multimedia/pulseaudio/files/daemon.conf b/meta-rcar-gen3-adas/recipes-multimedia/pulseaudio/files/daemon.conf
new file mode 100644
index 0000000..5d42a9e
--- /dev/null
+++ b/meta-rcar-gen3-adas/recipes-multimedia/pulseaudio/files/daemon.conf
@@ -0,0 +1,87 @@
+# This file is part of PulseAudio.
+#
+# PulseAudio is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# PulseAudio is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public License
+# along with PulseAudio; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
+# USA.
+
+## Configuration file for the PulseAudio daemon. See pulse-daemon.conf(5) for
+## more information. Default values are commented out. Use either ; or # for
+## commenting.
+
+; daemonize = no
+; fail = yes
+; allow-module-loading = yes
+; allow-exit = yes
+; use-pid-file = yes
+; system-instance = no
+; local-server-type = user
+; enable-shm = yes
+; shm-size-bytes = 0 # setting this 0 will use the system-default, usually 64 MiB
+; lock-memory = no
+; cpu-limit = no
+
+; high-priority = yes
+; nice-level = -11
+
+; realtime-scheduling = yes
+; realtime-priority = 5
+
+; exit-idle-time = 20
+; scache-idle-time = 20
+
+; dl-search-path = (depends on architecture)
+
+; load-default-script-file = yes
+; default-script-file = /etc/pulse/default.pa
+
+log-target = null
+; log-level = notice
+; log-meta = no
+; log-time = no
+; log-backtrace = 0
+
+; resample-method = speex-float-1
+; enable-remixing = yes
+; enable-lfe-remixing = no
+
+; flat-volumes = yes
+
+; rlimit-fsize = -1
+; rlimit-data = -1
+; rlimit-stack = -1
+; rlimit-core = -1
+; rlimit-as = -1
+; rlimit-rss = -1
+; rlimit-nproc = -1
+; rlimit-nofile = 256
+; rlimit-memlock = -1
+; rlimit-locks = -1
+; rlimit-sigpending = -1
+; rlimit-msgqueue = -1
+; rlimit-nice = 31
+; rlimit-rtprio = 9
+; rlimit-rttime = 1000000
+
+; default-sample-format = s16le
+default-sample-rate = 48000
+; alternate-sample-rate = 48000
+; default-sample-channels = 2
+; default-channel-map = front-left,front-right
+
+; default-fragments = 4
+; default-fragment-size-msec = 25
+
+; enable-deferred-volume = yes
+; deferred-volume-safety-margin-usec = 8000
+; deferred-volume-extra-delay-usec = 0
diff --git a/meta-rcar-gen3-adas/recipes-multimedia/pulseaudio/files/default.pa b/meta-rcar-gen3-adas/recipes-multimedia/pulseaudio/files/default.pa
new file mode 100644
index 0000000..8f1570f
--- /dev/null
+++ b/meta-rcar-gen3-adas/recipes-multimedia/pulseaudio/files/default.pa
@@ -0,0 +1,149 @@
+#!/usr/bin/pulseaudio -nF
+#
+# This file is part of PulseAudio.
+#
+# PulseAudio is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Lesser General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# PulseAudio is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public License
+# along with PulseAudio; if not, see <http://www.gnu.org/licenses/>.
+
+# This startup script is used only if PulseAudio is started per-user
+# (i.e. not in system mode)
+
+.nofail
+
+### Load something into the sample cache
+#load-sample-lazy x11-bell /usr/share/sounds/freedesktop/stereo/bell.oga
+#load-sample-lazy pulse-hotplug /usr/share/sounds/freedesktop/stereo/device-added.oga
+#load-sample-lazy pulse-coldplug /usr/share/sounds/freedesktop/stereo/device-added.oga
+#load-sample-lazy pulse-access /usr/share/sounds/freedesktop/stereo/message.oga
+
+.fail
+
+### Automatically restore the volume of streams and devices
+load-module module-device-restore
+load-module module-stream-restore
+load-module module-card-restore
+
+### Automatically augment property information from .desktop files
+### stored in /usr/share/application
+load-module module-augment-properties
+
+### Should be after module-*-restore but before module-*-detect
+load-module module-switch-on-port-available
+
+### Load audio drivers statically
+### (it's probably better to not load these drivers manually, but instead
+### use module-udev-detect -- see below -- for doing this automatically)
+#load-module module-alsa-sink
+#load-module module-alsa-source device=hw:0,0
+#load-module module-oss device="/dev/dsp" sink_name=output source_name=input
+#load-module module-oss-mmap device="/dev/dsp" sink_name=output source_name=input
+#load-module module-null-sink
+#load-module module-pipe-sink
+
+### Automatically load driver modules depending on the hardware available
+.ifexists module-udev-detect.so
+load-module module-udev-detect
+.else
+### Use the static hardware detection module (for systems that lack udev support)
+load-module module-detect
+.endif
+
+### Automatically connect sink and source if JACK server is present
+.ifexists module-jackdbus-detect.so
+.nofail
+load-module module-jackdbus-detect channels=2
+.fail
+.endif
+
+### Automatically load driver modules for Bluetooth hardware
+.ifexists module-bluetooth-policy.so
+load-module module-bluetooth-policy
+.endif
+
+.ifexists module-bluetooth-discover.so
+load-module module-bluetooth-discover
+.endif
+
+### Load several protocols
+.ifexists module-esound-protocol-unix.so
+load-module module-esound-protocol-unix
+.endif
+load-module module-native-protocol-unix
+
+### Network access (may be configured with paprefs, so leave this commented
+### here if you plan to use paprefs)
+#load-module module-esound-protocol-tcp
+#load-module module-native-protocol-tcp
+#load-module module-zeroconf-publish
+
+### Load the RTP receiver module (also configured via paprefs, see above)
+#load-module module-rtp-recv
+
+### Load the RTP sender module (also configured via paprefs, see above)
+#load-module module-null-sink sink_name=rtp format=s16be channels=2 rate=44100 sink_properties="device.description='RTP Multicast Sink'"
+#load-module module-rtp-send source=rtp.monitor
+
+### Load additional modules from GConf settings. This can be configured with the paprefs tool.
+### Please keep in mind that the modules configured by paprefs might conflict with manually
+### loaded modules.
+.ifexists module-gconf.so
+.nofail
+load-module module-gconf
+.fail
+.endif
+
+### Automatically restore the default sink/source when changed by the user
+### during runtime
+### NOTE: This should be loaded as early as possible so that subsequent modules
+### that look up the default sink/source get the right value
+load-module module-default-device-restore
+
+### Automatically move streams to the default sink if the sink they are
+### connected to dies, similar for sources
+load-module module-rescue-streams
+
+### Make sure we always have a sink around, even if it is a null sink.
+load-module module-always-sink
+
+### Honour intended role device property
+load-module module-intended-roles
+
+### Automatically suspend sinks/sources that become idle for too long
+load-module module-suspend-on-idle
+
+### If autoexit on idle is enabled we want to make sure we only quit
+### when no local session needs us anymore.
+.ifexists module-console-kit.so
+load-module module-console-kit
+.endif
+.ifexists module-systemd-login.so
+load-module module-systemd-login
+.endif
+
+### Enable positioned event sounds
+load-module module-position-event-sounds
+
+### Cork music/video streams when a phone stream is active
+load-module module-role-cork
+
+### Modules to allow autoloading of filters (such as echo cancellation)
+### on demand. module-filter-heuristics tries to determine what filters
+### make sense, and module-filter-apply does the heavy-lifting of
+### loading modules and rerouting streams.
+load-module module-filter-heuristics
+load-module module-filter-apply
+
+
+### Make some devices default
+#set-default-sink output
+#set-default-source input
diff --git a/meta-rcar-gen3-adas/recipes-multimedia/pulseaudio/files/hifi b/meta-rcar-gen3-adas/recipes-multimedia/pulseaudio/files/hifi
new file mode 100644
index 0000000..b249767
--- /dev/null
+++ b/meta-rcar-gen3-adas/recipes-multimedia/pulseaudio/files/hifi
@@ -0,0 +1,50 @@
+# Use case Configuration for Renesas H3 board
+
+SectionVerb {
+ EnableSequence [
+ exec "echo Setting defaults for ak4613"
+ cdev "hw:0"
+ cset "name='DVC Out Playback Volume' 30%"
+ cset "name='DVC In Capture Volume' 10%"
+ ]
+ DisableSequence [
+ ]
+}
+
+
+SectionDevice."Headphone".0 {
+ Value {
+ JackName "Headphone Jack"
+ PlaybackChannels 2
+ PlaybackPCM "hw:0"
+ }
+
+ EnableSequence [
+ cdev "hw:0"
+ cset "name='DVC Out Playback Volume' 30%"
+ ]
+ DisableSequence [
+ cdev "hw:0"
+ cset "name='DVC Out Playback Volume' 0%"
+ ]
+}
+
+SectionDevice."Mic".0 {
+ Value {
+ JackName "Mic Jack"
+ CaptureChannels 2
+ CapturePCM "hw:0"
+ }
+
+ EnableSequence [
+ cdev "hw:0"
+ cset "name='DVC In Capture Volume' 10%"
+ ]
+
+ DisableSequence [
+ cdev "hw:0"
+ cset "name='DVC In Capture Volume' 0%"
+ ]
+}
+
+
diff --git a/meta-rcar-gen3-adas/recipes-multimedia/pulseaudio/files/pulseaudio-bluetooth.conf b/meta-rcar-gen3-adas/recipes-multimedia/pulseaudio/files/pulseaudio-bluetooth.conf
new file mode 100644
index 0000000..925b9b1
--- /dev/null
+++ b/meta-rcar-gen3-adas/recipes-multimedia/pulseaudio/files/pulseaudio-bluetooth.conf
@@ -0,0 +1,7 @@
+<busconfig>
+
+ <policy user="pulse">
+ <allow send_destination="org.bluez"/>
+ </policy>
+
+</busconfig>
diff --git a/meta-rcar-gen3-adas/recipes-multimedia/pulseaudio/files/pulseaudio.init b/meta-rcar-gen3-adas/recipes-multimedia/pulseaudio/files/pulseaudio.init
new file mode 100755
index 0000000..4f0a03f
--- /dev/null
+++ b/meta-rcar-gen3-adas/recipes-multimedia/pulseaudio/files/pulseaudio.init
@@ -0,0 +1,48 @@
+#!/bin/sh
+#
+### BEGIN INIT INFO
+# Provides: pulseaudio-server
+# Required-Start: $local_fs $remote_fs
+# Required-Stop: $local_fs $remote_fs
+# Default-Start: 2 3 4 5
+# Default-Stop: 0 1 6
+### END INIT INFO
+
+killproc() {
+ pid=`/bin/pidof $1`
+ [ "$pid" != "" ] && kill $pid
+}
+
+read CMDLINE < /proc/cmdline
+for x in $CMDLINE; do
+ case $x in
+ pulseaudio=false)
+ echo "pulseaudio disabled"
+ exit 0;
+ ;;
+ esac
+done
+
+case "$1" in
+ start)
+ echo "Starting pulseaudio"
+ start-stop-daemon -S -x pulseaudio -- -D --system --disallow-exit
+ ;;
+
+ stop)
+ echo "Stopping pulseaudio"
+ start-stop-daemon -K -x pulseaudio
+ ;;
+
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+
+ *)
+ echo "usage: $0 { start | stop | restart }"
+ ;;
+esac
+
+exit 0
diff --git a/meta-rcar-gen3-adas/recipes-multimedia/pulseaudio/files/rsnddai0ak4613h.conf b/meta-rcar-gen3-adas/recipes-multimedia/pulseaudio/files/rsnddai0ak4613h.conf
new file mode 100644
index 0000000..1c084de
--- /dev/null
+++ b/meta-rcar-gen3-adas/recipes-multimedia/pulseaudio/files/rsnddai0ak4613h.conf
@@ -0,0 +1,9 @@
+# Use case Configuration for Renesas H3 board
+
+Comment "Renesas H3 board ak4613 audio card"
+
+SectionUseCase."HiFi" {
+ File "hifi"
+ Comment "Default"
+}
+
diff --git a/meta-rcar-gen3-adas/recipes-multimedia/pulseaudio/files/system.pa b/meta-rcar-gen3-adas/recipes-multimedia/pulseaudio/files/system.pa
new file mode 100644
index 0000000..eef66fc
--- /dev/null
+++ b/meta-rcar-gen3-adas/recipes-multimedia/pulseaudio/files/system.pa
@@ -0,0 +1,77 @@
+#!/usr/bin/pulseaudio -nF
+#
+# This file is part of PulseAudio.
+#
+# PulseAudio is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Lesser General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# PulseAudio is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public License
+# along with PulseAudio; if not, write to the Free Software Foundation,
+# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
+
+# This startup script is used only if PulseAudio is started in system
+# mode.
+
+## use static load order to prevent pulseaudio to auto probe MOST devices
+## MOST drivers does not like how pulse probing it and crashes system
+## PCM3168A card (Kingfisher only)
+load-module module-alsa-sink sink_name=pcm3168a_output device=hw:pcm3168a format=s24-32le channels=8 rate=48000 channel_map=surround-71
+load-module module-alsa-source source_name=pcm3168a_input device=hw:pcm3168a format=s24-32le channels=8 rate=48000 channel_map=surround-71
+## Onboard sound (All R-Car 3 boards)
+## use ALSA card plugin to run UCM and initial controls setup
+load-module module-alsa-card device_id=ak4613 rate=48000 use_ucm=1 tsched=yes sink_name=ak4613_output source_name=ak4613_input
+## Radio input (Kingfisher only)
+load-module module-alsa-source source_name=radio device=hw:radio channels=2 rate=48000
+## WL18xx PCM interface (Kingfisher only)
+load-module module-alsa-card device_id=wl18xx rate=8000 sink_name=bt_output source_name=bt_input
+
+### Load several protocols
+.ifexists module-esound-protocol-unix.so
+load-module module-esound-protocol-unix
+.endif
+load-module module-native-protocol-unix auth-anonymous=1
+
+### Automatically restore the volume of streams and devices
+load-module module-stream-restore
+load-module module-device-restore
+
+### Automatically restore the default sink/source when changed by the user
+### during runtime
+### NOTE: This should be loaded as early as possible so that subsequent modules
+### that look up the default sink/source get the right value
+load-module module-default-device-restore
+
+### Automatically move streams to the default sink if the sink they are
+### connected to dies, similar for sources
+load-module module-rescue-streams
+
+### Make sure we always have a sink around, even if it is a null sink.
+load-module module-always-sink
+
+### Automatically suspend sinks/sources that become idle for too long
+# load-module module-suspend-on-idle
+
+### Enable positioned event sounds
+# load-module module-position-event-sounds
+
+### Automatically load driver modules for Bluetooth hardware
+.ifexists module-bluetooth-policy.so
+load-module module-bluetooth-policy
+.endif
+
+.ifexists module-bluetooth-discover.so
+load-module module-bluetooth-discover
+.endif
+
+set-default-sink ak4613_output
+set-default-source ak4613_input
+# For Kingfisher board set default source and sink to multichannel soundcard
+set-default-sink pcm3168a_output
+set-default-source pcm3168a_input
diff --git a/meta-rcar-gen3-adas/recipes-multimedia/pulseaudio/pulseaudio_8.0.bbappend b/meta-rcar-gen3-adas/recipes-multimedia/pulseaudio/pulseaudio_8.0.bbappend
new file mode 100644
index 0000000..705c781
--- /dev/null
+++ b/meta-rcar-gen3-adas/recipes-multimedia/pulseaudio/pulseaudio_8.0.bbappend
@@ -0,0 +1,39 @@
+FILESEXTRAPATHS_append := "${THISDIR}/files:"
+
+PR="r2"
+
+SRC_URI_append_rcar-gen3 = " \
+ file://pulseaudio.init \
+ file://rsnddai0ak4613h.conf \
+ file://hifi \
+ file://system.pa \
+ file://daemon.conf \
+ file://pulseaudio-bluetooth.conf \
+"
+
+inherit update-rc.d
+
+INITSCRIPT_NAME = "pulseaudio"
+INITSCRIPT_PARAMS = "defaults 30"
+
+do_install_append_rcar-gen3() {
+ install -d ${D}/etc/init.d
+ install -d ${D}/etc/pulse
+ install -d ${D}/usr/share/alsa/ucm/rsnddai0ak4613h/
+
+ install -m 0755 ${WORKDIR}/pulseaudio.init ${D}/etc/init.d/pulseaudio
+
+ install -m 0644 ${WORKDIR}/system.pa ${D}/etc/pulse/system.pa
+ install -m 0644 ${WORKDIR}/daemon.conf ${D}/etc/pulse/daemon.conf
+
+ install -m 0644 ${WORKDIR}/rsnddai0ak4613h.conf ${D}${datadir}/alsa/ucm/rsnddai0ak4613h/rsnddai0ak4613h.conf
+ install -m 0644 ${WORKDIR}/hifi ${D}${datadir}/alsa/ucm/rsnddai0ak4613h/hifi
+
+ install -d ${D}/${sysconfdir}/dbus-1/system.d
+ install -m 644 ${WORKDIR}/pulseaudio-bluetooth.conf ${D}/${sysconfdir}/dbus-1/system.d/
+}
+
+FILES_${PN}-server += " \
+ ${datadir}/alsa/ucm \
+ ${datadir}/dbus-1/ \
+"