diff options
-rw-r--r-- | 4a-hal-cfg-community/hal-4a-ensoniq.json | 199 | ||||
-rw-r--r-- | 4a-hal-cfg-community/hal-4a-jabra.json | 199 | ||||
-rw-r--r-- | 4a-hal-cfg-reference/hal-4a-2ch-generic-usb.json | 14 | ||||
-rw-r--r-- | 4a-hal-cfg-reference/hal-4a-intel-minnow.json | 169 | ||||
-rw-r--r-- | 4a-hal-cfg-reference/hal-4a-intel.json | 199 | ||||
-rw-r--r-- | 4a-hal-cfg-reference/hal-4a-rcar-m3.json | 199 | ||||
-rw-r--r-- | README.md | 9 |
7 files changed, 986 insertions, 2 deletions
diff --git a/4a-hal-cfg-community/hal-4a-ensoniq.json b/4a-hal-cfg-community/hal-4a-ensoniq.json new file mode 100644 index 0000000..809acf8 --- /dev/null +++ b/4a-hal-cfg-community/hal-4a-ensoniq.json @@ -0,0 +1,199 @@ +{ + "$schema": "http://iot.bzh/download/public/schema/json/ctl-schema.json", + "metadata": { + "uid": "/dev/snd/by-id/usb-0d8c_USB_Sound_Device-03", + "version": "0.9", + "api": "4a-hal-ensoniq", + "require": [ "alsacore", "smixer" ], + "info": "4a hal for Ensoniq", + "author": "Jonathan Aillet", + "date": "2018-06-13" + }, + "controls": [ + { + "uid": "ping", + "info": "Ping hal", + "action": "api://4a-hal-manager#ping" + } + ], + "halmap": [ + { + "uid": "agl-master-playback-volume", + "alsa": { + "name": "Master Playback Volume", + "value": 100 + } + }, + { + "uid": "agl-pcm-playback-volume", + "alsa": { + "name": "PCM Playback Volume", + "value": 100 + } + }, + { + "uid": "agl-master-playback-switch", + "alsa": { + "name": "Master Playback Switch", + "value": 1 + } + }, + { + "uid": "agl-mic-capture-volume", + "alsa": { + "name": "Capture Volume" + } + } + ], + "halmixer": { + "uid": "jabra-solemate", + "mixerapi": "smixer", + "ramps": [ + { + "uid": "ramp-very-fast", + "delay": 50, + "up": 6, + "down": 4 + }, + { + "uid": "ramp-fast", + "delay": 50, + "up": 2, + "down": 4 + }, + { + "uid": "ramp-normal", + "delay": 100, + "up": 6, + "down": 10 + }, + { + "uid": "ramp-slow", + "delay": 100, + "up": 4, + "down": 2 + }, + { + "uid": "ramp-very-slow", + "delay": 100, + "up": 1, + "down": 1 + } + ], + "playbacks" : { + "uid": "JABRA-SOLEMATE", + "path": "/dev/snd/by-id/usb-0d8c_USB_Sound_Device-03", + "params": { + "rate": 48000 + }, + "sink": { + "controls": { + "volume": { + "name": "Speaker Playback Volume", + "value": 80 + }, + "mute": { + "name": "Speaker Playback Switch" + } + }, + "channels": [ + { + "uid": "front-right", + "port": 0 + }, + { + "uid": "front-left", + "port": 1 + } + ] + } + }, + "captures": { + "uid": "JABRA-SOLEMATE", + "path": "/dev/snd/by-id/usb-0d8c_USB_Sound_Device-03", + "params": { + "rate": 48000 + }, + "source": { + "controls": { + "volume": { + "name": "Capture Volume" + }, + "mute": { + "name": "Capture Switch" + } + }, + "channels": [ + { + "uid": "mic-right", + "port": 0 + }, + { + "uid": "mic-left", + "port": 1 + } + ] + } + }, + "zones": [ + { + "uid": "full-stereo", + "sink": [ + { + "target": "front-right", + "channel": 0 + }, + { + "target": "front-left", + "channel": 1 + } + ] + }, + { + "uid": "front-seats", + "sink": [ + { + "target": "front-right", + "channel": 0 + }, + { + "target": "front-left", + "channel": 1 + } + ] + } + ], + "streams": [ + { + "uid": "multimedia", + "verb": "multimedia", + "zone": "full-stereo", + "volume": 60, + "mute": false, + "params": { + "rate": 48000 + } + }, + { + "uid": "navigation", + "verb": "navigation", + "zone": "front-seats", + "volume": 70, + "mute": false, + "params": { + "rate": 48000 + } + }, + { + "uid": "emergency", + "verb": "emergency", + "zone": "front-seats", + "volume": 60, + "mute": false, + "params": { + "rate": 48000 + } + } + ] + } +} diff --git a/4a-hal-cfg-community/hal-4a-jabra.json b/4a-hal-cfg-community/hal-4a-jabra.json new file mode 100644 index 0000000..e2d60d2 --- /dev/null +++ b/4a-hal-cfg-community/hal-4a-jabra.json @@ -0,0 +1,199 @@ +{ + "$schema": "http://iot.bzh/download/public/schema/json/ctl-schema.json", + "metadata": { + "uid": "/dev/snd/by-id/usb-0d8c_USB_Sound_Device-02", + "version": "0.9", + "api": "4a-hal-jabra-solemate", + "require": [ "alsacore", "smixer" ], + "info": "4a hal for Jabra Solemate", + "author": "Jonathan Aillet", + "date": "2018-06-13" + }, + "controls": [ + { + "uid": "ping", + "info": "Ping hal", + "action": "api://4a-hal-manager#ping" + } + ], + "halmap": [ + { + "uid": "agl-master-playback-volume", + "alsa": { + "name": "PCM Playback Volume", + "value": 80 + } + }, + { + "uid": "agl-pcm-playback-volume", + "alsa": { + "name": "PCM Playback Volume", + "value": 80 + } + }, + { + "uid": "agl-pcm-playback-switch", + "alsa": { + "name": "PCM Playback Switch", + "value": 1 + } + }, + { + "uid": "agl-mic-capture-volume", + "alsa": { + "name": "Mic Capture Volume" + } + } + ], + "halmixer": { + "uid": "jabra-solemate", + "mixerapi": "smixer", + "ramps": [ + { + "uid": "ramp-very-fast", + "delay": 50, + "up": 6, + "down": 10 + }, + { + "uid": "ramp-fast", + "delay": 50, + "up": 2, + "down": 10 + }, + { + "uid": "ramp-normal", + "delay": 50, + "up": 2, + "down": 4 + }, + { + "uid": "ramp-slow", + "delay": 50, + "up": 2, + "down": 2 + }, + { + "uid": "ramp-very-slow", + "delay": 100, + "up": 1, + "down": 1 + } + ], + "playbacks" : { + "uid": "JABRA-SOLEMATE", + "path": "/dev/snd/by-id/usb-0d8c_USB_Sound_Device-02", + "params": { + "rate": 48000 + }, + "sink": { + "controls": { + "volume": { + "name": "Speaker Playback Volume", + "value": 80 + }, + "mute": { + "name": "Speaker Playback Switch" + } + }, + "channels": [ + { + "uid": "front-right", + "port": 0 + }, + { + "uid": "front-left", + "port": 1 + } + ] + } + }, + "captures": { + "uid": "JABRA-SOLEMATE", + "path": "/dev/snd/by-id/usb-0d8c_USB_Sound_Device-02", + "params": { + "rate": 48000 + }, + "source": { + "controls": { + "volume": { + "name": "Capture Volume" + }, + "mute": { + "name": "Capture Switch" + } + }, + "channels": [ + { + "uid": "mic-right", + "port": 0 + }, + { + "uid": "mic-left", + "port": 1 + } + ] + } + }, + "zones": [ + { + "uid": "full-stereo", + "sink": [ + { + "target": "front-right", + "channel": 0 + }, + { + "target": "front-left", + "channel": 1 + } + ] + }, + { + "uid": "front-seats", + "sink": [ + { + "target": "front-right", + "channel": 0 + }, + { + "target": "front-left", + "channel": 1 + } + ] + } + ], + "streams": [ + { + "uid": "multimedia", + "verb": "multimedia", + "zone": "full-stereo", + "volume": 60, + "mute": false, + "params": { + "rate": 48000 + } + }, + { + "uid": "navigation", + "verb": "navigation", + "zone": "front-seats", + "volume": 70, + "mute": false, + "params": { + "rate": 48000 + } + }, + { + "uid": "emergency", + "verb": "emergency", + "zone": "front-seats", + "volume": 60, + "mute": false, + "params": { + "rate": 48000 + } + } + ] + } +} diff --git a/4a-hal-cfg-reference/hal-4a-2ch-generic-usb.json b/4a-hal-cfg-reference/hal-4a-2ch-generic-usb.json index 14eecbf..fdc3b19 100644 --- a/4a-hal-cfg-reference/hal-4a-2ch-generic-usb.json +++ b/4a-hal-cfg-reference/hal-4a-2ch-generic-usb.json @@ -7,7 +7,7 @@ "require": [ "alsacore", "smixer" ], "info": "4a hal for 2ch generic USB device", "author": "Jonathan Aillet", - "date": "2018-06-09" + "date": "2018-06-13" }, "controls": [ { @@ -51,6 +51,12 @@ "mixerapi": "smixer", "ramps": [ { + "uid": "ramp-very-fast", + "delay": 50, + "up": 6, + "down": 10 + }, + { "uid": "ramp-fast", "delay": 50, "up": 2, @@ -64,6 +70,12 @@ }, { "uid": "ramp-slow", + "delay": 50, + "up": 2, + "down": 2 + }, + { + "uid": "ramp-very-slow", "delay": 100, "up": 1, "down": 1 diff --git a/4a-hal-cfg-reference/hal-4a-intel-minnow.json b/4a-hal-cfg-reference/hal-4a-intel-minnow.json new file mode 100644 index 0000000..0e78148 --- /dev/null +++ b/4a-hal-cfg-reference/hal-4a-intel-minnow.json @@ -0,0 +1,169 @@ +{ + "$schema": "http://iot.bzh/download/public/schema/json/ctl-schema.json", + "metadata": { + "uid": "/dev/snd/by-path/pci-0000:00:1b.0", + "version": "0.9", + "api": "4a-hal-intel-minnow", + "require": [ "alsacore", "smixer" ], + "info": "4a hal for Intel Minnow device", + "author": "Jonathan Aillet", + "date": "2018-06-13" + }, + "controls": [ + { + "uid": "ping", + "info": "Ping hal", + "action": "api://4a-hal-manager#ping" + } + ], + "halmap": [ + { + "uid": "agl-master-playback-volume", + "alsa": { + "name": "IEC958 Playback Switch", + "value": 100 + } + }, + { + "uid": "agl-pcm-playback-switch", + "alsa": { + "name": "IEC958 Playback Switch", + "value": 1 + } + } + ], + "halmixer": { + "uid": "intel-minnow", + "mixerapi": "smixer", + "ramps": [ + { + "uid": "ramp-very-fast", + "delay": 50, + "up": 6, + "down": 10 + }, + { + "uid": "ramp-fast", + "delay": 50, + "up": 2, + "down": 10 + }, + { + "uid": "ramp-normal", + "delay": 50, + "up": 2, + "down": 4 + }, + { + "uid": "ramp-slow", + "delay": 50, + "up": 2, + "down": 2 + }, + { + "uid": "ramp-very-slow", + "delay": 100, + "up": 1, + "down": 1 + } + ], + "playbacks" : { + "uid": "INTEL-MINNOW", + "path": "/dev/snd/by-path/pci-0000:00:1b.0", + "params": { + "rate": 48000 + }, + "sink": { + "channels": [ + { + "uid": "front-right", + "port": 0 + }, + { + "uid": "front-left", + "port": 1 + } + ] + } + }, + "captures": { + "uid": "INTEL-MINNOW", + "path": "/dev/snd/by-path/pci-0000:00:1b.0", + "params": { + "rate": 48000 + }, + "source": { + "channels": [ + { + "uid": "mic-right", + "port": 0 + }, + { + "uid": "mic-left", + "port": 1 + } + ] + } + }, + "zones": [ + { + "uid": "full-stereo", + "sink": [ + { + "target": "front-right", + "channel": 0 + }, + { + "target": "front-left", + "channel": 1 + } + ] + }, + { + "uid": "front-seats", + "sink": [ + { + "target": "front-right", + "channel": 0 + }, + { + "target": "front-left", + "channel": 1 + } + ] + } + ], + "streams": [ + { + "uid": "multimedia", + "verb": "multimedia", + "zone": "full-stereo", + "volume": 60, + "mute": false, + "params": { + "rate": 48000 + } + }, + { + "uid": "navigation", + "verb": "navigation", + "zone": "front-seats", + "volume": 70, + "mute": false, + "params": { + "rate": 48000 + } + }, + { + "uid": "emergency", + "verb": "emergency", + "zone": "front-seats", + "volume": 60, + "mute": false, + "params": { + "rate": 48000 + } + } + ] + } +} diff --git a/4a-hal-cfg-reference/hal-4a-intel.json b/4a-hal-cfg-reference/hal-4a-intel.json new file mode 100644 index 0000000..d489c85 --- /dev/null +++ b/4a-hal-cfg-reference/hal-4a-intel.json @@ -0,0 +1,199 @@ +{ + "$schema": "http://iot.bzh/download/public/schema/json/ctl-schema.json", + "metadata": { + "uid": "/dev/snd/by-path/pci-0000:00:1b.1", + "version": "0.9", + "api": "4a-hal-intel", + "require": [ "alsacore", "smixer" ], + "info": "4a hal for Intel device", + "author": "Jonathan Aillet", + "date": "2018-06-13" + }, + "controls": [ + { + "uid": "ping", + "info": "Ping hal", + "action": "api://4a-hal-manager#ping" + } + ], + "halmap": [ + { + "uid": "agl-master-playback-volume", + "alsa": { + "name": "Master Playback Volume", + "value": 100 + } + }, + { + "uid": "agl-pcm-playback-volume", + "alsa": { + "name": "PCM Playback Volume", + "value": 100 + } + }, + { + "uid": "agl-master-playback-switch", + "alsa": { + "name": "Master Playback Switch", + "value": 1 + } + }, + { + "uid": "agl-capture-volume", + "alsa": { + "name": "Capture Volume" + } + } + ], + "halmixer": { + "uid": "intel", + "mixerapi": "smixer", + "ramps": [ + { + "uid": "ramp-very-fast", + "delay": 50, + "up": 6, + "down": 10 + }, + { + "uid": "ramp-fast", + "delay": 50, + "up": 2, + "down": 10 + }, + { + "uid": "ramp-normal", + "delay": 50, + "up": 2, + "down": 4 + }, + { + "uid": "ramp-slow", + "delay": 50, + "up": 2, + "down": 2 + }, + { + "uid": "ramp-very-slow", + "delay": 100, + "up": 1, + "down": 1 + } + ], + "playbacks" : { + "uid": "INTEL", + "path": "/dev/snd/by-path/pci-0000:00:1b.1", + "params": { + "rate": 48000 + }, + "sink": { + "controls": { + "volume": { + "name": "Master Playback Volume", + "value": 80 + }, + "mute": { + "name": "Master Playback Switch" + } + }, + "channels": [ + { + "uid": "front-right", + "port": 0 + }, + { + "uid": "front-left", + "port": 1 + } + ] + } + }, + "captures": { + "uid": "INTEL", + "path": "/dev/snd/by-path/pci-0000:00:1b.1", + "params": { + "rate": 48000 + }, + "source": { + "controls": { + "volume": { + "name": "Capture Volume" + }, + "mute": { + "name": "Capture Switch" + } + }, + "channels": [ + { + "uid": "mic-right", + "port": 0 + }, + { + "uid": "mic-left", + "port": 1 + } + ] + } + }, + "zones": [ + { + "uid": "full-stereo", + "sink": [ + { + "target": "front-right", + "channel": 0 + }, + { + "target": "front-left", + "channel": 1 + } + ] + }, + { + "uid": "front-seats", + "sink": [ + { + "target": "front-right", + "channel": 0 + }, + { + "target": "front-left", + "channel": 1 + } + ] + } + ], + "streams": [ + { + "uid": "multimedia", + "verb": "multimedia", + "zone": "full-stereo", + "volume": 60, + "mute": false, + "params": { + "rate": 48000 + } + }, + { + "uid": "navigation", + "verb": "navigation", + "zone": "front-seats", + "volume": 70, + "mute": false, + "params": { + "rate": 48000 + } + }, + { + "uid": "emergency", + "verb": "emergency", + "zone": "front-seats", + "volume": 60, + "mute": false, + "params": { + "rate": 48000 + } + } + ] + } +} diff --git a/4a-hal-cfg-reference/hal-4a-rcar-m3.json b/4a-hal-cfg-reference/hal-4a-rcar-m3.json new file mode 100644 index 0000000..0e5c67a --- /dev/null +++ b/4a-hal-cfg-reference/hal-4a-rcar-m3.json @@ -0,0 +1,199 @@ +{ + "$schema": "http://iot.bzh/download/public/schema/json/ctl-schema.json", + "metadata": { + "uid": "/dev/snd/by-path/platform-sound", + "version": "0.9", + "api": "4a-hal-rcar-m3", + "require": [ "alsacore", "smixer" ], + "info": "4a hal for Rcar M3 device", + "author": "Jonathan Aillet", + "date": "2018-06-13" + }, + "controls": [ + { + "uid": "ping", + "info": "Ping hal", + "action": "api://4a-hal-manager#ping" + } + ], + "halmap": [ + { + "uid": "agl-master-playback-volume", + "alsa": { + "name": "Digital Playback Volume1", + "value": 80 + } + }, + { + "uid": "agl-pcm-playback-volume", + "alsa": { + "name": "Digital Playback Volume1", + "value": 80 + } + }, + { + "uid": "agl-pcm-playback-switch", + "alsa": { + "name": "SRC Out Rate Switch", + "value": 1 + } + }, + { + "uid": "agl-capture-volume", + "alsa": { + "name": "DVC In Capture Volume" + } + } + ], + "halmixer": { + "uid": "rcar-m3", + "mixerapi": "smixer", + "ramps": [ + { + "uid": "ramp-very-fast", + "delay": 50, + "up": 6, + "down": 10 + }, + { + "uid": "ramp-fast", + "delay": 50, + "up": 2, + "down": 10 + }, + { + "uid": "ramp-normal", + "delay": 50, + "up": 2, + "down": 4 + }, + { + "uid": "ramp-slow", + "delay": 50, + "up": 2, + "down": 2 + }, + { + "uid": "ramp-very-slow", + "delay": 100, + "up": 1, + "down": 1 + } + ], + "playbacks" : { + "uid": "RCAR-M3", + "path": "/dev/snd/by-path/platform-sound", + "params": { + "rate": 48000 + }, + "sink": { + "controls": { + "volume": { + "name": "Digital Playback Volume1", + "value": 80 + }, + "mute": { + "name": "SRC Out Rate Switch" + } + }, + "channels": [ + { + "uid": "front-right", + "port": 0 + }, + { + "uid": "front-left", + "port": 1 + } + ] + } + }, + "captures": { + "uid": "RCAR-M3", + "path": "/dev/snd/by-path/platform-sound", + "params": { + "rate": 48000 + }, + "source": { + "controls": { + "volume": { + "name": "DVC In Capture Volume" + }, + "mute": { + "name": "DVC In Mute Switch" + } + }, + "channels": [ + { + "uid": "mic-right", + "port": 0 + }, + { + "uid": "mic-left", + "port": 1 + } + ] + } + }, + "zones": [ + { + "uid": "full-stereo", + "sink": [ + { + "target": "front-right", + "channel": 0 + }, + { + "target": "front-left", + "channel": 1 + } + ] + }, + { + "uid": "front-seats", + "sink": [ + { + "target": "front-right", + "channel": 0 + }, + { + "target": "front-left", + "channel": 1 + } + ] + } + ], + "streams": [ + { + "uid": "multimedia", + "verb": "multimedia", + "zone": "full-stereo", + "volume": 60, + "mute": false, + "params": { + "rate": 48000 + } + }, + { + "uid": "navigation", + "verb": "navigation", + "zone": "front-seats", + "volume": 70, + "mute": false, + "params": { + "rate": 48000 + } + }, + { + "uid": "emergency", + "verb": "emergency", + "zone": "front-seats", + "volume": 60, + "mute": false, + "params": { + "rate": 48000 + } + } + ] + } +} @@ -131,13 +131,20 @@ sudo modprobe snd-aloop * The `params` is where you can specify some parameters for your stream (such as rate). * `volume` and `mute` fields are initiate values of the stream. -#### Note about using a USB device +### Note about using a USB device Dynamic handling of USB devices is not yet implemented, so you need to modify the 'hal-4a-2ch-generic-usb.json' to change the `uid` value in `metadata` section and `path` values in `playbacks` and `captures` sections. All these values should be replaced by the alsa entry path of your usb device, these entry are listed under directory '/dev/snd/by-id/...'. +### Selection of the hal loaded at binding launch + +Currently, the 4a-hal binding will try to launch a hal for each json audio configuration +files found in path specified with CONTROL_CONFIG_PATH (an audio configuration file should begin with 4a-hal-*). +If you don't want a hal to be launch with the binding, you can just rename/remove the corresponding +audio json configuration file. + ## Compile (for each repositories) ```bash |