<div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr">Great!<div><br></div><div><span style="font-size:12.8px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">alcDevicePauseSOFT/<span style="text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline">alcDeviceResumeSOFT<span> was exactly what I needed!</span></span></span><br></div><div><span style="font-size:12.8px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline"><span style="text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline"><span><br></span></span></span></div><div><span style="font-size:12.8px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline"><span style="text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline"><span>I've attached patch files for the additions I've done</span></span></span></div><div><span style="font-size:12.8px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline"><span style="text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline"><span><br></span></span></span></div><div><span style="background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline"><span style="text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline"><span style="font-size:12.8px">coreaudio-ios-buildfix.diff </span></span></span></div><div><span style="background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline"><span style="text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline"><span style="font-size:12.8px">- </span></span></span></div><div><span style="background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline"><span style="text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline"><span style="font-size:12.8px">This small patch is to make coreaudio backend build and run on iOS. Capture is disabled. (I have no use for it, and there was some issue with it, I don't remember exactly. Possibly it's not available on iOS, or there was some sandbox/entitlement issue)</span><br></span></span></div><div><span style="background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline"><span style="text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline"><span style="font-size:12.8px"><br></span></span></span></div><div><span style="background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline"><span style="text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline"><span style="font-size:12.8px">ios-bundle-config.diff </span></span></span></div><div><span style="background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline"><span style="text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline"><span style="font-size:12.8px">- </span></span></span></div><div><span style="background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline"><span style="text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline"><span style="font-size:12.8px">Another minor iOS fix, this makes it possible to keep the config file in the application bundle. </span></span></span></div><div><span style="background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline"><span style="text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline"><span style="font-size:12.8px">This might not be needed, but it was how I solved it at that time. Possibly you could also just "chdir()" in your app to the bundle path and it would also work.</span><br></span></span></div><div><span style="font-size:12.8px">I'm not using a config file now, but I thought I should include this patch anyhow.</span></div><div><span style="background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline"><span style="text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline"><span style="font-size:12.8px"><br></span></span></span></div><div><span style="background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline"><span style="text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline"><span style="font-size:12.8px">wave-output.diff</span><br></span></span></div><div><span style="background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline"><span style="text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline"><span style="font-size:12.8px">-</span></span></span></div><div><span style="background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline"><span style="text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline"><span style="font-size:12.8px">The most impactful patch, introduces a few new API functions:</span></span></span></div><div><span style="background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline"><span style="text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline"><div><span style="font-size:12.8px">+ALC_API ALCboolean ALC_APIENTRY alcSetPlaybackBackendSOFT(const char* name); - Switches backend. Must be called before creating device/context. When switching, I shut down, switch, and recreate device and context. I use this to switch between "core" and "wave".</span></div><div><span style="font-size:12.8px"><br></span></div><div><span style="font-size:12.8px">+ALC_API void ALC_APIENTRY alcSetWaveOutputFileSOFT(const char* path); - Setting what file wave backend output too, it was impractical to use the config file for this on iOS. Also introduces the internal SetConfigValue function.</span></div><div><span style="font-size:12.8px"><br></span></div><div><span style="font-size:12.8px">+ALC_API void ALC_APIENTRY alcSetWaveOutputRealtimeSOFT(ALCboolean realtime); - Toggles realtime mode on wave backend. if true, works as before with background thread, if false, you must call the next function to step the mixer/backend</span></div><div><span style="font-size:12.8px"><br></span></div><div><span style="font-size:12.8px">+ALC_API void ALC_APIENTRY alcWaveOutputRenderSOFT(ALCdevice *device, ALCdouble dt); - Steps the mixer/backend for dt seconds outputting to the wave file (used only if backend has realtime==false). I needed this to synchronize with offscreen rendering when recording video with sound from our game engine. Implementation could be cleaned up for better code re-use... </span></div><div style="font-size:12.8px"><br></div><div style="font-size:12.8px"><br></div><div style="font-size:12.8px">That's it.</div><div style="font-size:12.8px"><br></div><div style="font-size:12.8px">Also, thank you for maintaining this very useful software! :)</div></span></span></div><div><span style="background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline"><span style="text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline"><span style="font-size:12.8px"><br></span></span></span></div><div><span style="background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline"><span style="text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline"><span style="font-size:12.8px"><br></span></span></span></div><div><span style="font-size:12.8px;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline"><span style="text-decoration-style:initial;text-decoration-color:initial;float:none;display:inline"><span><br></span></span></span></div></div></div></div></div></div><div class="gmail_extra"><br><div class="gmail_quote">On 30 August 2018 at 16:59, Chris Robinson <span dir="ltr"><<a href="mailto:chris.kcat@gmail.com" target="_blank">chris.kcat@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">On 08/30/2018 06:57 AM, Olle Hedman wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
But at least one thing does not work for me anymore on Android, and that is<br>
suspending and resuming. (when application goes into background and comes<br>
back again). The problem is the mixing thread is still running and<br>
outputting (very choppy) sound for all our looping sound effects while the<br>
app is in background...<br>
<br>
How am I supposed to handle this? Destroying and recreating the context is<br>
very inconvenient since the suspend can happen at any time and we want<br>
everything to restart playing exactly where suspended when we resume again.<br>
</blockquote>
<br></span>
Hi.<br>
<br>
Since 1.16, OpenAL Soft has the ALC_SOFT_pause_device extension which should do what you want. It adds the alcDevicePauseSOFT function you can use to stop output processing (when you detect the app has been put into the background, for instance), and alcDeviceResumeSOFT to resume where it left off (when back in the foreground).<br>
<br>
<<a href="http://kcat.strangesoft.net/openal-extensions/SOFT_pause_device.txt" rel="noreferrer" target="_blank">http://kcat.strangesoft.net/o<wbr>penal-extensions/SOFT_pause_de<wbr>vice.txt</a>><br>
<br>
Feel free to ask if you have any questions with using it.<span class=""><br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Also, let me know if you are interested in knowing more about any of our<br>
other patches.<br>
</blockquote>
<br></span>
Sure, it would be good to know what changes you've needed or wanted.<br>
</blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature" data-smartmail="gmail_signature"><blockquote type="cite" style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:13px;background-color:rgb(255,255,255)"><div style="word-wrap:break-word"><span style="border-collapse:separate;font-family:Helvetica;text-align:-webkit-auto;border-spacing:0px"><div style="margin:0px;font-family:Verdana;color:rgb(100,100,100)"><b><p align="LEFT" style="margin-bottom:0in"><font color="#515151"><font face="Verdana, sans-serif"><font size="2" style="font-size:11pt">Best regards,</font></font></font></p></b></div><div style="margin:0px;font-family:Verdana;color:rgb(100,100,100)"><b>Olof Hedman</b></div><div style="margin:0px;font-size:12px;font-family:Verdana;color:rgb(140,140,140)"><br></div><table cellspacing="0" cellpadding="0"><tbody><tr><td valign="middle" style="margin:0px;font-family:arial,sans-serif;width:40px"><div style="margin:0px;font-size:10px;font-family:Verdana;color:rgb(100,100,100)">Mobile:</div></td><td valign="middle" style="margin:0px;font-family:arial,sans-serif;width:10px"><div style="margin:0px;font-size:10px;font-family:Verdana;color:rgb(100,100,100);min-height:12px"><br></div></td><td valign="middle" style="margin:0px;font-family:arial,sans-serif;width:118px"><div style="margin:0px;font-size:10px;font-family:Verdana;color:rgb(100,100,100)"><a value="+46704670767" style="color:rgb(17,85,204)">+46 (0)708 - 42 28 76 </a></div></td></tr><tr><td valign="middle" style="margin:0px;font-family:arial,sans-serif;width:40px"><div style="margin:0px;font-size:10px;font-family:Verdana;color:rgb(100,100,100)">Office:</div></td><td valign="middle" style="margin:0px;font-family:arial,sans-serif;width:10px"><div style="margin:0px;font-size:10px;font-family:Verdana;color:rgb(100,100,100);min-height:12px"><br></div></td><td valign="middle" style="margin:0px;font-family:arial,sans-serif;width:118px"><div style="margin:0px;font-size:10px;font-family:Verdana;color:rgb(100,100,100)"><a value="+46406444495" style="color:rgb(17,85,204)">+46 (0)40 - 644 44 95</a></div></td></tr><tr><td valign="middle" style="margin:0px;font-family:arial,sans-serif;width:40px"><div style="margin:0px;font-size:10px;font-family:Verdana;color:rgb(100,100,100)">Web:</div></td><td valign="middle" style="margin:0px;font-family:arial,sans-serif;width:10px"><div style="margin:0px;font-size:10px;font-family:Verdana;color:rgb(100,100,100);min-height:12px"><br></div></td><td valign="middle" style="margin:0px;font-family:arial,sans-serif;width:118px"><div style="margin:0px;font-size:10px;font-family:Verdana;color:rgb(37,79,174)"><span style="text-decoration:underline"><a href="http://www.illusionlabs.com/" style="color:rgb(17,85,204)" target="_blank">www.illusionlabs.com</a></span></div></td></tr><tr><td valign="middle" style="margin:0px;font-family:arial,sans-serif;width:40px"><div style="margin:0px;font-size:10px;font-family:Verdana;color:rgb(100,100,100)">Twitter:</div></td><td valign="middle" style="margin:0px;font-family:arial,sans-serif;width:10px"><div style="margin:0px;font-size:10px;font-family:Verdana;color:rgb(100,100,100);min-height:12px"><br></div></td><td valign="middle" style="margin:0px;font-family:arial,sans-serif;width:118px"><div style="margin:0px;font-size:10px;font-family:Verdana;color:rgb(37,79,174)"><span style="text-decoration:underline"><a href="http://twitter.com/illusionlabs" style="color:rgb(17,85,204)" target="_blank">twitter.com/illusionlabs</a></span></div></td></tr></tbody></table><br><table cellspacing="0" cellpadding="0"><tbody><tr><td valign="middle" style="margin:0px;font-family:arial,sans-serif;width:136px"><div style="margin:0px;font-size:10px;font-family:Verdana;color:rgb(100,100,100)">Illusion Labs AB</div></td></tr><tr><td valign="middle" style="margin:0px;font-family:arial,sans-serif;width:136px"><div style="margin:0px;font-size:10px;font-family:Verdana;color:rgb(100,100,100)">Kalendegatan 25</div></td></tr><tr><td valign="middle" style="margin:0px;font-family:arial,sans-serif;width:136px"><div style="margin:0px;font-size:10px;font-family:Verdana;color:rgb(100,100,100)">SE-211 35 Malmö, Sweden</div></td></tr></tbody></table><p style="margin:0px 0px 9px;font-size:9px;font-family:Verdana;color:rgb(170,170,170)"><br></p><p style="margin:0px 0px 9px;font-size:9px;font-family:Verdana;color:rgb(170,170,170)">"The information in this e-mail, and attachment(s) thereto, is strictly confidential and may be legally privileged. It is intended solely for the named recipient(s), and access to this e-mail, or any attachment(s) thereto, by anyone else is unauthorized. If you are not the intended recipient please inform the sender by replying to this transmission, and delete the e-mail, its attachment(s), and any copies of it, without disclosing it."</p></span></div></blockquote></div>
</div>