Skip to content

Commit

Permalink
sculpt/deploy: configure Play/Record sessions
Browse files Browse the repository at this point in the history
Issue genodelabs#31.
Issue genodelabs/genode#5714.
  • Loading branch information
cnuke committed Apr 22, 2024
1 parent 2d6825d commit 287ee71
Show file tree
Hide file tree
Showing 5 changed files with 115 additions and 24 deletions.
4 changes: 2 additions & 2 deletions sculpt/deploy/default
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,8 @@

<start name="black_hole" pkg="black_hole">
<config>
<audio_in/>
<audio_out/>
<play/>
<record/>
<capture/>
</config>
</start>
Expand Down
4 changes: 2 additions & 2 deletions sculpt/deploy/goa_testbed
Original file line number Diff line number Diff line change
Expand Up @@ -45,8 +45,8 @@
<service name="Gpu"> <parent/> </service>
<service name="Gui"> <parent/> </service>
<service name="Rtc"> <child name="sntp_dummy_rtc"/> </service>
<service name="Audio_in"> <child name="black_hole"/> </service>
<service name="Audio_out"> <child name="black_hole"/> </service>
<service name="Play"> <child name="black_hole"/> </service>
<service name="Record"> <child name="black_hole"/> </service>
<service name="Usb"> <child name="black_hole"/> </service>
<service name="Event"> <child name="black_hole"/> </service>
<service name="Capture"> <child name="black_hole"/> </service>
Expand Down
35 changes: 30 additions & 5 deletions sculpt/deploy/jitsi
Original file line number Diff line number Diff line change
Expand Up @@ -68,11 +68,36 @@
<start name="audio_drv" pkg="a64_audio_drv" priority="0" cpu="40">
<resource name="CPU" quantum="40"/>
<affinity xpos="0" ypos="0" width="1" height="1"/>
<config record_play="yes"/>
<route>
<service name="Play"> <child name="mixer"/> </service>
<service name="Record"> <child name="mixer"/> </service>
<service name="Platform"> <parent label="audio_drv"/> </service>
</route>
</start>

<start name="mixer" pkg="record_play_mixer" priority="0">
<affinity xpos="0" ypos="0" width="1" height="1"/>
<config jitter_ms="23" warning_rate_ms="0">
<mix name="left"> <play label="jitsi_browser -> morph-browser -> left" volume="1.0"/> </mix>
<mix name="right"> <play label="jitsi_browser -> morph-browser -> right" volume="1.0"/> </mix>

<!-- capture microphone -->
<mix name="mic_left"> <play label="audio -> mic_left"/> </mix>
<mix name="mic_right"> <play label="audio -> mic_right"/> </mix>

<policy label="jitsi_browser -> morph-browser -> left" record="mic_left" period_ms="46" jitter_ms="23" volume="1.0"/>
<policy label="jitsi_browser -> morph-browser -> right" record="mic_right" period_ms="46" jitter_ms="23" volume="1.0"/>

<!-- rule for the audio driver matching its configuration -->
<policy label="audio_drv -> left" record="left" period_ms="12" jitter_ms="5" volume="1.0"/>
<policy label="audio_drv -> right" record="right" period_ms="12" jitter_ms="5" volume="1.0"/>
</config>
<route>
<service name="Report"> <parent/> </service>
</route>
</start>

<start name="video_bridge" pkg="nitpicker">
<config request_framebuffer="no">
<capture/>
Expand Down Expand Up @@ -139,7 +164,7 @@
</config>
</start>

<start ram="1350M" name="jitsi_browser" pkg="cproc/pkg/morph_browser_pinephone-jemalloc/2023-10-18">
<start ram="1350M" name="jitsi_browser" pkg="morph_browser">
<affinity xpos="1" width="2"/>
<route>
<service name="Nic">
Expand All @@ -166,11 +191,11 @@
<service name="Rtc">
<child name="sntp_dummy_rtc"/>
</service>
<service name="Audio_out">
<child name="audio_drv"/>
<service name="Play">
<child name="mixer"/>
</service>
<service name="Audio_in">
<child name="audio_drv"/>
<service name="Record">
<child name="mixer"/>
</service>
<service name="Capture">
<child name="video_bridge"/>
Expand Down
41 changes: 34 additions & 7 deletions sculpt/deploy/morph_browser
Original file line number Diff line number Diff line change
Expand Up @@ -66,15 +66,42 @@
</start>

<start name="audio_drv" pkg="a64_audio_drv" priority="0" cpu="40">
<resource name="CPU" quantum="40"/>
<resource name="CPU" quantum="20"/>
<affinity xpos="0" ypos="0" width="1" height="1"/>
<config record_play="yes"/>
<route>
<service name="Play"> <child name="mixer"/> </service>
<service name="Record"> <child name="mixer"/> </service>
<service name="Platform"> <parent label="audio_drv"/> </service>
</route>
</start>

<start name="mixer" pkg="record_play_mixer" priority="0">
<resource name="CPU" quantum="20"/>
<affinity xpos="0" ypos="0" width="1" height="1"/>
<config jitter_ms="23" warning_rate_ms="0">

<mix name="left"> <play label="morph_browser -> morph-browser -> left" volume="1.0"/> </mix>
<mix name="right"> <play label="morph_browser -> morph-browser -> right" volume="1.0"/> </mix>

<!-- capture microphone -->
<mix name="mic_left"> <!-- <play label="audio -> mic_left"/> --> </mix>
<mix name="mic_right"> <!-- <play label="audio -> mic_right"/> --> </mix>

<policy label="morph_browser -> morph-browser -> left" record="mic_left" period_ms="46" jitter_ms="23" volume="1.0"/>
<policy label="morph_browser -> morph-browser -> right" record="mic_right" period_ms="46" jitter_ms="23" volume="1.0"/>

<!-- rule for the audio driver matching its configuration -->
<policy label="audio_drv -> left" record="left" period_ms="12" jitter_ms="5" volume="1.0"/>
<policy label="audio_drv -> right" record="right" period_ms="12" jitter_ms="5" volume="1.0"/>
</config>
<route>
<service name="Report"> <parent/> </service>
</route>
</start>

<start name="black_hole" pkg="black_hole">
<config> <audio_in/> <audio_out/> <capture/> <report/> </config>
<config> <capture/> <report/> </config>
</start>

<start name="touch_keyboard" pkg="touch_keyboard">
Expand Down Expand Up @@ -120,7 +147,7 @@
</config>
</start>

<start ram="1350M" name="morph_browser" pkg="cproc/pkg/morph_browser_pinephone-jemalloc/2023-10-18">
<start ram="1350M" name="morph_browser" pkg="morph_browser">
<affinity xpos="1" width="2"/>
<route>
<service name="Nic">
Expand All @@ -147,11 +174,11 @@
<service name="Rtc">
<child name="sntp_dummy_rtc"/>
</service>
<service name="Audio_out">
<child name="audio_drv"/>
<service name="Play">
<child name="mixer"/>
</service>
<service name="Audio_in">
<child name="black_hole"/>
<service name="Record">
<child name="mixer"/>
</service>
<service name="Capture">
<child name="black_hole"/>
Expand Down
55 changes: 47 additions & 8 deletions sculpt/deploy/osci
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<config arch="" info="simple oscilloscope for audio input">
<config arch="" info="simple oscilloscope for microphone recording">

<common_routes>
<service name="ROM" label_last="ld.lib.so"> <parent/> </service>
Expand All @@ -10,21 +10,60 @@
</common_routes>

<start name="audio_drv" pkg="a64_audio_drv" priority="0" cpu="40">
<resource name="CPU" quantum="40"/>
<resource name="CPU" quantum="20"/>
<affinity xpos="0" ypos="0" width="1" height="1"/>
<config record_play="yes"/>
<route>
<service name="Play"> <child name="mixer"/> </service>
<service name="Record"> <child name="mixer"/> </service>
<service name="Platform"> <parent label="audio_drv"/> </service>
</route>
</start>

<start ram="16M" name="osci" pkg="osci">
<affinity xpos="2" width="1"/>
<config xpos="0" ypos="360" width="720" height="720"
background="#1a2831" color="#ffefdf"/>
<start name="mixer" pkg="record_play_mixer" priority="0">
<resource name="CPU" quantum="20"/>
<affinity xpos="0" ypos="0" width="1" height="1"/>
<config jitter_ms="10" warning_rate_ms="0">

<!-- capture microphone -->
<mix name="mic_left"> <play label="audio_drv -> mic_left"/> </mix>
<mix name="mic_right"> <play label="audio_drv -> mic_right"/> </mix>

<policy label="record_rom -> mic_left" record="mic_left" period_ms="12" jitter_ms="5" volume="1.0"/>
<policy label="record_rom -> mic_right" record="mic_right" period_ms="12" jitter_ms="5" volume="1.0"/>

<policy label="audio_drv -> left" record="left" period_ms="12" jitter_ms="5" volume="1.0"/>
<policy label="audio_drv -> right" record="right" period_ms="12" jitter_ms="5" volume="1.0"/>
</config>
<route>
<service name="Report"> <parent/> </service>
</route>
</start>

<start name="record_rom" pkg="record_rom" priority="0">
<affinity xpos="0" ypos="0" width="1" height="1"/>
<config period_ms="12" sample_rate_hz="44100">
<record label="mic_left"/>
<record label="mic_right"/>
</config>
<route>
<service name="Record"> <child name="mixer"/> </service>
<service name="RM"> <parent/> </service>
</route>
</start>

<start name="osci" pkg="rom_osci" priority="-1">
<affinity xpos="0" ypos="0" width="1" height="1"/>

<config fps="20" v_scale="0.5" phase_lock="yes" xpos="0" ypos="360"
width="720" height="720" background="#1a2831" color="#ffefdf">
<channel label="mic_left" color="#ff6633" v_pos="0.25"/>
<channel label="mic_right" color="#cc7777" v_pos="0.75"/>
</config>
<route>
<service name="ROM" label="recording"> <child name="record_rom"/> </service>
<service name="Gui"> <parent/> </service>
<service name="Audio_in"> <child name="audio_drv"/> </service>
<config/>
<service name="RM"> <parent/> </service>
</route>
</start>

Expand Down

0 comments on commit 287ee71

Please sign in to comment.