package Ġorg . silver moon . silver sound meter . util Ċ Ċ class ĠDec ib el Utils Ġ{ ĊĠĠĠ Ġcompanion Ġobject { ĊĠĠĠĠĠĠĠ Ġvar Ġdb Count Ġ= Ġ 4 0 f ĊĠĠĠĠĠĠĠ Ġvar Ġmin DB Ġ= Ġ 1 0 0 f ĊĠĠĠĠĠĠĠ Ġvar Ġmax Db Ġ= Ġ 0 f ĊĠĠĠĠĠĠĠ Ġvar Ġlast Db Count Ġ= Ġdb Count ĊĠĠĠĠĠĠĠ Ġval Ġmin _ sound _ level Ġ= Ġ 0 . 5 f ĊĠĠĠĠĠĠĠ Ġvar Ġsound _ db _ val Ġ= Ġ 0 f ĊĊĠĠĠĠĠĠĠ Ġfun Ġset DB Count ( db Val : ĠFloat ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif ( db Val Ġ> Ġlast Db Count ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsound _ db _ val Ġ= Ġ Ġif Ġ( db Val Ġ- Ġlast Db Count Ġ> Ġmin _ sound _ level ) Ġ( db Val Ġ- Ġlast Db Count ) Ġelse Ġmin _ sound _ level ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsound _ db _ val Ġ= Ġif ( db Val Ġ- Ġlast Db Count Ġ< Ġ- min _ sound _ level ) Ġ( db Val Ġ- Ġlast Db Count ) Ġelse Ġ- min _ sound _ level ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġdb Count Ġ= Ġlast Db Count Ġ+ Ġsound _ db _ val Ġ* Ġ 0 . 2 f ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlast Db Count Ġ= Ġdb Count ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif ( db Count Ġ< Ġmin DB ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmin DB Ġ= Ġdb Count ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif ( db Count Ġ> Ġmax Db ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmax Db Ġ= Ġdb Count ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }