/* Ċ Ġ* ĠCopyright Ġ( C ) Ġ 2 0 1 7 Ġ- Ġ 2 0 2 1 ĠEx o Media ĠContributors Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ Ċ package Ġcom . dev br ackets . android . ex ome dia . core . renderer . audio Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . os . Handler Ċ import Ġcom . dev br ackets . android . ex ome dia . core . renderer . Render Provider Ċ import Ġcom . dev br ackets . android . ex ome dia . core . renderer . Renderer Type Ċ import Ġcom . google . android . ex op layer 2 . Renderer Ċ import Ġcom . google . android . ex op layer 2 . audio . Audio Capabilities Ċ import Ġcom . google . android . ex op layer 2 . audio . Audio Renderer EventListener Ċ import Ġcom . google . android . ex op layer 2 . audio . Media Codec Audio Renderer Ċ import Ġcom . google . android . ex op layer 2 . medi ac ode c . Media Codec Selector Ċ Ċ open Ġclass ĠAudio Render Provider ( ĊĠĠĠ Ġprivate Ġval Ġcontext : ĠContext , ĊĠĠĠ Ġprivate Ġval Ġhandler : ĠHandler , ĊĠĠĠ Ġprivate Ġval Ġaudio Renderer EventListener : ĠAudio Renderer EventListener Ċ ): ĠRender Provider Ġ{ ĊĠ Ġoverride Ġfun Ġtype () Ġ= ĠRenderer Type . AUDIO ĊĊĠ Ġoverride Ġfun Ġrenderer Classes (): ĠList < String > Ġ{ ĊĠĠĠ Ġreturn ĠlistOf ( ĊĠĠĠĠĠĠĠ Ġ" com . google . android . ex op layer 2 . ext . opus . Lib opus Audio Renderer ", ĊĠĠĠĠĠĠĠ Ġ" com . google . android . ex op layer 2 . ext . fl ac . Lib fl ac Audio Renderer ", ĊĠĠĠĠĠĠĠ Ġ" com . google . android . ex op layer 2 . ext . ffmpeg . Ff mpeg Audio Renderer ", ĊĠĠĠ Ġ) ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġbuild Render ers (): ĠList < Renderer > Ġ{ ĊĠĠĠ Ġval Ġrender ers Ġ= Ġmutable ListOf < Renderer >() ĊĊĠĠĠ Ġval Ġaudio Capabilities Ġ= ĠAudio Capabilities . get Capabilities ( context ) ĊĠĠĠ Ġrender ers . add ( Media Codec Audio Renderer ( context , ĠMedia Codec Selector . DEFAULT , Ġhandler , Ġaudio Renderer EventListener , Ġaudio Capabilities )) ĊĊĠĠĠ Ġ// ĠAdds Ġany Ġregistered Ġclasses ĊĠĠĠ Ġrenderer Classes (). forEach Ġ{ ĠclassName Ġ-> ĊĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġclazz Ġ= ĠClass . forName ( className ) ĊĠĠĠĠĠĠĠ Ġval Ġconstructor Ġ= Ġclazz . get Constructor ( Handler :: class . java , ĠAudio Renderer EventListener :: class . java ) ĊĠĠĠĠĠĠĠ Ġval Ġrenderer Ġ= Ġconstructor . newInstance ( handler , Ġaudio Renderer EventListener ) Ġas ĠRenderer ĊĠĠĠĠĠĠĠ Ġrender ers . add ( renderer ) ĊĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠPurpose fully Ġleft Ġblank ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġreturn Ġrender ers ĊĠ Ġ} Ċ }