package Ġjp . blank tar . ru um usic . service Ċ Ċ import Ġkotlin . concurrent . thread Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . media . MediaPlayer Ċ import Ġandroid . media . audio fx . B ass Boost Ċ import Ġandroid . media . audio fx . Equal izer Ċ import Ġandroid . media . audio fx . L oud ness Enh ancer Ċ import Ġandroid . media . audio fx . Preset Re verb Ċ import Ġandroid . media . audio fx . Virtual izer Ċ import Ġandroid . os . Build Ċ import Ġandroid . os . Handler Ċ import Ġandroid . widget . Toast Ċ Ċ import Ġjp . blank tar . ru um usic . R Ċ import Ġjp . blank tar . ru um usic . util . Equal izer Info Ċ import Ġjp . blank tar . ru um usic . util . Preference ĊĊ Ċ class ĠEffect Manager ( val Ġplayer : ĠMedia Player , Ġval Ġcontext : ĠContext ) Ġ{ ĊĠĠĠ Ġprivate Ġval Ġpreference Ġ= ĠPreference ( context ) ĊĊĠĠĠ Ġprivate Ġvar Ġb ass Boost : ĠB ass Boost ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġpreset Re verb : ĠP reset Re verb ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġlo ud ness Enh ancer : ĠL oud ness Enh ancer ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġequal izer : ĠEqual izer ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġvirtual izer : ĠVirtual izer ? Ġ= Ġnull ĊĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġpreference . B ass Boost Enabled . setOn ChangeListener Ġ{ Ġupdate B ass Boost () Ġ} ĊĠĠĠĠĠĠĠ Ġpreference . B ass Boost Level . setOn ChangeListener Ġ{ Ġupdate B ass Boost () Ġ} ĊĊĠĠĠĠĠĠĠ Ġpreference . Re verb Enabled . setOn ChangeListener Ġ{ Ġupdate Re verb () Ġ} ĊĠĠĠĠĠĠĠ Ġpreference . Re verb Type . setOn ChangeListener Ġ{ Ġupdate Re verb () Ġ} ĊĊĠĠĠĠĠĠĠ Ġpreference . L oud ness Enabled . setOn ChangeListener Ġ{ Ġupdate L oud ness Enh ancer () Ġ} ĊĠĠĠĠĠĠĠ Ġpreference . L oud ness Level . setOn ChangeListener Ġ{ Ġupdate L oud ness Enh ancer () Ġ} ĊĊĠĠĠĠĠĠĠ Ġpreference . Equal izer Enabled . setOn ChangeListener Ġ{ Ġupdate Equal izer () Ġ} ĊĠĠĠĠĠĠĠ Ġpreference . Equal izer Preset . setOn ChangeListener Ġ{ Ġupdate Equal izer () Ġ} ĊĠĠĠĠĠĠĠ Ġpreference . Equal izer Level . setOn ChangeListener Ġ{ Ġupdate Equal izer () Ġ} ĊĊĠĠĠĠĠĠĠ Ġpreference . Virtual izer Enabled . setOn ChangeListener Ġ{ Ġupdate Virtual izer () Ġ} ĊĠĠĠĠĠĠĠ Ġpreference . Virtual izer Mode . setOn ChangeListener Ġ{ Ġupdate Virtual izer () Ġ} ĊĠĠĠĠĠĠĠ Ġpreference . Virtual izer Strength . setOn ChangeListener Ġ{ Ġupdate Virtual izer () Ġ} ĊĊĠĠĠĠĠĠĠ Ġupdate B ass Boost () ĊĠĠĠĠĠĠĠ Ġupdate Re verb () ĊĠĠĠĠĠĠĠ Ġupdate L oud ness Enh ancer () ĊĠĠĠĠĠĠĠ Ġupdate Equal izer () ĊĠĠĠĠĠĠĠ Ġupdate Virtual izer () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġrelease () Ġ{ ĊĠĠĠĠĠĠĠ Ġpreference . unset All Listeners () ĊĊĠĠĠĠĠĠĠ Ġb ass Boost ?. release () ĊĠĠĠĠĠĠĠ Ġpreset Re verb ?. release () ĊĠĠĠĠĠĠĠ Ġlo ud ness Enh ancer ?. release () ĊĠĠĠĠĠĠĠ Ġequal izer ?. release () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġupdate B ass Boost () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( preference . B ass Boost Enabled . get ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( b ass Boost Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġb ass Boost Ġ= ĠB ass Boost ( 0 , Ġplayer . audio SessionId ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġb ass Boost !!. set Strength ( preference . B ass Boost Level . get ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġb ass Boost !!. enabled Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠUnsupportedOperationException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Toast ( context . getString ( R . string . audio effect _ cant _ enable )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpreference . B ass Boost Enabled . set ( false ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠRuntimeException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Toast ( context . getString ( R . string . audio effect _ failed _ enable , Ġcontext . getString ( R . string . b ass _ boost _ switch ))) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpreference . B ass Boost Enabled . set ( false ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġb ass Boost ?. release () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġb ass Boost Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġupdate Re verb () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( preference . Re verb Enabled . get ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( preset Re verb Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpreset Re verb Ġ= ĠP reset Re verb ( 0 , Ġplayer . audio SessionId ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpreset Re verb !!. preset Ġ= Ġpreference . Re verb Type . get () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpreset Re verb !!. enabled Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠUnsupportedOperationException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Toast ( context . getString ( R . string . audio effect _ cant _ enable )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpreference . Re verb Enabled . set ( false ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠRuntimeException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Toast ( context . getString ( R . string . audio effect _ failed _ enable , Ġcontext . getString ( R . string . re verb _ switch ))) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpreference . Re verb Enabled . set ( false ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpreset Re verb ?. release () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpreset Re verb Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġupdate L oud ness Enh ancer () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( Build . VERSION . SDK _ INT Ġ< Ġ 1 9 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( preference . L oud ness Enabled . get ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( loud ness Enh ancer Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlo ud ness Enh ancer Ġ= ĠL oud ness Enh ancer ( player . audio SessionId ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlo ud ness Enh ancer !!. setTarget Gain ( preference . L oud ness Level . get ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlo ud ness Enh ancer !!. enabled Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠUnsupportedOperationException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Toast ( context . getString ( R . string . audio effect _ cant _ enable )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpreference . L oud ness Enabled . set ( false ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠRuntimeException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Toast ( context . getString ( R . string . audio effect _ failed _ enable , Ġcontext . getString ( R . string . loud ness _ switch ))) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpreference . L oud ness Enabled . set ( false ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlo ud ness Enh ancer ?. release () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlo ud ness Enh ancer Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġupdate Equal izer () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( preference . Equal izer Enabled . get ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( equal izer Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġequal izer Ġ= ĠEqual izer ( 0 , Ġplayer . audio SessionId ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpreset Ġ= Ġpreference . Equal izer Preset . get () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( preset Ġ< Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 .. ( equal izer !!. numberOf B ands Ġ- Ġ 1 )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġequal izer !!. set Band Level ( i . to Short (), Ġpreference . Equal izer Level . get ( i ). to Short ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġequal izer !!. use Preset ( preset ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ(( i , Ġx ) Ġin Ġequal izer !!. properties . band Levels . with Index ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpreference . Equal izer Level . set ( i , Ġx . toInt ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġequal izer !!. enabled Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠUnsupportedOperationException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Toast ( context . getString ( R . string . audio effect _ cant _ enable )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpreference . Equal izer Enabled . set ( false ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠRuntimeException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Toast ( context . getString ( R . string . audio effect _ failed _ enable , Ġcontext . getString ( R . string . equal izer _ switch ))) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpreference . Equal izer Enabled . set ( false ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġequal izer ?. release () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġequal izer Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Equal izer Info (): ĠEqual izer Info Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġeq Ġ= Ġequal izer ĊĠĠĠĠĠĠĠ Ġval Ġhave _ to _ release Ġ= Ġeq Ġ== Ġnull ĊĠĠĠĠĠĠĠ Ġif Ġ( have _ to _ release ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġeq Ġ= ĠEqual izer ( 0 , Ġplayer . audio SessionId ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġinfo Ġ= ĠEqual izer Info () ĊĊĠĠĠĠĠĠĠ Ġinfo . min Ġ= Ġeq !!. band Level Range [ 0 ] ĊĠĠĠĠĠĠĠ Ġinfo . max Ġ= Ġeq . band Level Range [ 1 ] ĊĊĠĠĠĠĠĠĠ Ġinfo . freq s Ġ= ĠInt Array ( eq . numberOf B ands . toInt ()) Ġ{ Ġi Ġ-> Ġeq !!. get Center Freq ( i . to Short ()) Ġ} ĊĊĠĠĠĠĠĠĠ Ġinfo . presets Ġ= ĠArray ( eq . numberOf Pre sets . toInt ()) Ġ{ Ġi Ġ-> Ġeq !!. get Pre setName ( i . to Short ()) Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( have _ to _ release ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġeq . release () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġinfo ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġupdate Virtual izer () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( preference . Virtual izer Enabled . get ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( virtual izer Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvirtual izer Ġ= ĠVirtual izer ( 0 , Ġplayer . audio SessionId ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( Build . VERSION . SDK _ INT Ġ>= Ġ 2 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvirtual izer !!. force Virtual ization Mode ( preference . Virtual izer Mode . get ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvirtual izer !!. set Strength ( preference . Virtual izer Strength . get ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvirtual izer !!. enabled Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠUnsupportedOperationException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Toast ( context . getString ( R . string . audio effect _ cant _ enable )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpreference . Virtual izer Enabled . set ( false ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠRuntimeException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Toast ( context . getString ( R . string . audio effect _ failed _ enable , Ġcontext . getString ( R . string . virtual izer _ switch ))) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpreference . Virtual izer Enabled . set ( false ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvirtual izer ?. release () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvirtual izer Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġshow Toast ( message : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġhandler Ġ= ĠHandler () ĊĠĠĠĠĠĠĠ Ġthread Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhandler . post Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( context , Ġmessage , ĠToast . LENGTH _ LONG ). show () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }